apache pig将行转换为用字符分隔的单个列

oxcyiej7  于 2021-06-21  发布在  Pig
关注(0)|答案(1)|浏览(340)

我需要将值列转换为按城市分组并用“|”(管道)字符分隔的单行
data=load'/tmp/test.dat'使用pigstorage(',')作为(city:chararray, value:chararray )
输入:(城市/值)
伊斯坦布尔,1
伊斯坦布尔,2
伊斯坦布尔,3
纽约,8
纽约,9
输出:
伊斯坦布尔,1 | 2 | 3
纽约,8 | 9

dgtucam1

dgtucam11#

首先做一个小组 CITY ,然后使用bagtostring(http://pig.apache.org/docs/r0.15.0/func.html#bagtostring)将每个组的值转换为所需的字符串表示形式。有点像(未经测试!)

data = LOAD '/tmp/test.dat' using PigStorage(',') AS (city:chararray, value:chararray);
data_grp = GROUP data BY city;
result = FOREACH data_grp GENERATE group AS city, BagToString(data.value, '|') AS values;

相关问题