2013-02-01 106 views
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 

讚賞任何幫助。

回答

4

您應該使用內建的STRSPLIT將第二個字段拆分爲多個標記,然後應用FLATTEN爲每個元素創建1行。事情是這樣的:

A = LOAD 'input.txt' as (id, data); 

B = FOREACH A GENERATE id, FLATTEN(STRSPLIT(data,'-')); 
+0

STRSPLIT返回一個元組,而不是一個包,它不會轉動數據值入行,你將最終獲得相同數量的元組作爲輸入數據。爲了得到你想要的結果,請看看http://stackoverflow.com/questions/12549842/pig-convert-text-lines-to-sparse-vector/12568662#12568662 – alexeipab

+2

剛剛嘗試過,它工作。將空格替換爲' - '而不是TOKENIZE,因爲它會返回一個BAG,在FLATTEN之後它會創建旋轉的行。 B = FOREACH A GENERATE ID,FLATTEN(TOKENIZE(REPLACE(data,' - ',''))); – alexeipab