我有一组推文,我想计算用户使用Pig回复的数量。
我的猪脚本看起来像(假设y1有所需的json):
y2 = GROUP y1 BY in_reply_to_user_id_str;
y3 = FOREACH y2 GENERATE group AS in_reply_to_user_id_str, COUNT(y1) AS number_of_replies_to_user;
y4 = FOREACH y3 GENERATE in_reply_to_user_id_str, number_of_replies_to_user;
y5 = JOIN y1 BY user_id LEFT OUTER, y4 BY in_reply_to_user_id_str;
STORE y5 INTO '$DATA_OUTPUT' USING JsonStorage()
现在,我的输出如下:
{"y1::user_id":"9642792"............"y4::in_reply_to_user_id_str":"9642792","y4::number_of_replies_to_user":1}
Whereeas我期待的是:
{"user_id":"9642792"..............."number_of_replies_to_user":1}
我不想要别名y1
和y5
。我删除了一些不需要回答问题的不需要的字段,只是为了使它更具可读性。
我该怎么做?我的猪版本(0.15)不支持$0..
。
另外,有更好的方法来计算这个值吗? SQL看起来非常简单,但Pig确实令人困惑。
答案 0 :(得分:0)
添加一个额外的步骤,从y5生成所需的字段,然后存储生成的y6关系
git tfs fetch