【发布时间】:2017-04-10 13:53:04
【问题描述】:
我有一个表加载了两次,以执行称为当前和上一个的自联接。两者都包含列“key”(不是唯一的)和“value”。我已经按键分组,并计算了每组键中的值的数量。
我想知道与前一个表相比,当前表中添加了多少值,但我收到错误“无效的标量投影:cur_count:需要从关系中投影一列才能使用它作为一个标量”。我对猪拉丁语比较陌生,所以我不确定执行这种差异的语法应该是什么。
请忽略 cur_count 和 prev_count 的语法。
cur_count = FOREACH cur_grouped GENERATE COUNT(current);
prev_count = FOREACH prev_grouped GENERATE COUNT(previous);
left_join = join current by key LEFT OUTER, previous by key-1;
difference = FOREACH left_join GENERATE key, cur_count-prev_count; //error here
dump difference;
以下是一些示例数据
key value
1 12
1 34
1 11
1 45
2 4
3 34
3 34
3 23
4 15
4 19
到目前为止我的脚本做了什么:它计算每组键中的值的数量
key count
1 4
2 1
3 3
4 2
我想找出一个键和前一个键之间值的数量差异
key difference
2 -3
3 2
4 -1
【问题讨论】:
-
如果您可以分享示例数据和预期输出,那将会很有用。
-
@Amit 抱歉不清楚!我已经用一些示例数据和预期输出更新了我的帖子
标签: apache-pig