2
Apache Pig是否支持UNGROUP操作?我想没有。那么,有没有人能帮助我解决这个问题? 我有一个排的形式Apache Pig中的UnGroup
1,a-b-c
2,d-e-f
3,g-h
的,我想它扩大到形式
1,a
1,b
1,c
2,d
2,e
2,f
3,g
3,h
赞赏任何帮助。
Apache Pig是否支持UNGROUP操作?我想没有。那么,有没有人能帮助我解决这个问题? 我有一个排的形式Apache Pig中的UnGroup
1,a-b-c
2,d-e-f
3,g-h
的,我想它扩大到形式
1,a
1,b
1,c
2,d
2,e
2,f
3,g
3,h
赞赏任何帮助。
您应该使用内建的STRSPLIT
将第二个字段拆分为多个标记,然后应用FLATTEN
为每个元素创建1行。事情是这样的:
A = LOAD 'input.txt' as (id, data);
B = FOREACH A GENERATE id, FLATTEN(STRSPLIT(data,'-'));
STRSPLIT返回一个元组,而不是一个包,它不会转动数据值入行,你将最终获得相同数量的元组作为输入数据。为了得到你想要的结果,请看看http://stackoverflow.com/questions/12549842/pig-convert-text-lines-to-sparse-vector/12568662#12568662 – alexeipab
刚刚尝试过,它工作。将空格替换为' - '而不是TOKENIZE,因为它会返回一个BAG,在FLATTEN之后它会创建旋转的行。 B = FOREACH A GENERATE ID,FLATTEN(TOKENIZE(REPLACE(data,' - ',''))); – alexeipab