apache-pig - 通过在 PIG 脚本中不同块内计算的条件值过滤 FOREACH 块内
问题描述
我有 2 个数据集,我需要找到与数据集 1 到数据集 2 的记录匹配的匹配记录,如下所示:
dataset 1 = [sourceID, details, key]
1, details1, 1111
2, details2, 1112
3, details3, 1113
4, details4, 1114
...
dataset2 = [key1, key2, number]
1111,1112,3
1111,1114,1
1112,1113,11
...
output:
1, details1, 1111, 2, details2, 1112, 3
1, details1,1111, 4, details4, 1114, 1
2, details2, 1112, 3, details3, 11
....
我尝试如下:
a = foreach dataset1 {
b = filter dataset2 by dataset1.key1 matches dataset1.key;
c = filter dataset2 by datset1.key2 matches dataset1.key;
generate b, c;
};
请提供任何帮助。
非常感谢。
解决方案
运行两个连接?
B = join dataset1 by key, dataset2 by key1;
C = join dataset1 by key, B by key2;
推荐阅读
- javascript - 重定向到 Javascript 中的动态链接不起作用
- vue.js - 为什么不能使用 v-on 简写来绑定“on”?
- python - Elasticsearch 找不到关键字搜索
- bash - 将 awk 的 1 个字段转换为 base64,其余部分保持不变
- java - 如何将 keycloak 离线访问令牌存储在本地数据库中?
- javascript - 当我更改在 React 中传递给它的道具时,组件没有更新
- c# - 与实体框架的asp net core mysql连接
- metadata - 如何使用元数据生成 SAML 断言响应?
- android - contentResolver.openInputStream(uri) 在获取安全权限被拒绝时崩溃
- r - R:将带有选项卡的txt保存为行的标题