我是猪的新手并且有以下" test.csv":
A,Mark,45
A,Joe,42
A,Kyle,43
B,Mike,40
我知道我可以遍历这个并使用FOREACH生成每行记录,但是 我不知道的是我如何使用pig迭代并生成如下所示的两条记录:
{"class":"A",people:[["Mark",45],["Joe",42],["Kyle",43]]}
{"class":"B",people:[["Mike",40]]}
请注意,每条记录基本上都是"分组"通过第一列的唯一值。 如果可能的话,这是另一种可行的替代方案:
{"class":"A",people:[{"name":"Mark","age":45},{"name":"Joe","age":42},{"name":"Kyle","age":43}]}
{"class":"B",people:[{"name":"Mike","age":40}]}
答案 0 :(得分:0)
A = load' test.csv'使用PigStorage(',')作为(col1,col2,col3);
B = col1的A组;
C = foreach B生成组,A.col2,A.col3;
将C存储到'位置'使用PigStorage(',');
这将为您提供所需的o / p。如果你想要json格式o / p然后使用org.apache.pig.builtin.JsonStorage()进行存储;