【发布时间】:2018-04-23 15:29:45
【问题描述】:
我正在尝试使用 Pig Latin 创建以下格式的关系:
用户 ID,日期,{(pid,fulldate, x,y),(pid,fulldate, x,y), ...}
关系描述:每个用户(userid)在每一天(day)中都购买了多个产品(pid)
我正在将数据加载到:
A= LOAD '**from a HDFS URL**' AS (pid: chararray,userid:
chararray,day:int,fulldate: chararray,x: chararray,y:chararray);
B= GROUP A BY (userid, day);
Describe B;
B: {group: (userid: chararray,day: int),A: {(pid: chararray,day: int,fulldate: chararray,x: chararray,userid: chararray,y: chararray)}}
C= FOREACH B FLATTEN(B) AS (userid,day), $1.pid, $1.fulldate,$1.x,$1.y;
Describe C;
C: {userid: chararray,day: int,{(pid: chararray)}},{(fulldate: chararray)},{(x: chararray)},{(y: chararray)}}
Describe C 的结果没有给出我想要的格式!我做错了什么?
【问题讨论】:
-
上面的
DESCRIBE B输出是不可能的。我想你有B,它应该写成A,比如:B: {group: (userid: chararray,day: int),A: {(pid: chararray,day: int,fulldate: chararray,x: chararray,userid: chararray,y: chararray)}}我的回答假设这个包被命名为A。 -
你是对的,刚刚编辑了问题!
标签: hadoop apache-pig apache-pig-grunt