2016-03-09 42 views
0

我需要將Value列轉換爲城市分組的單行,並用「|」分隔。 (管)字符Apache Pig將行轉換爲以字符分隔的單列

DATA = LOAD '/tmp/test.dat' 使用PigStorage( '')作爲( CITY:chararray, VALUE:chararray )

輸入: (城市/值)

ISTANBUL,1

ISTANBUL,2

ISTANBUL,3

NEWYORK,8

NEWYORK,9

輸出:

ISTANBUL,1 | 2 | 3

NEWYORK,8 | 9

回答

2

先做一組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; 
+0

工程就像一個魅力!謝謝。 –

相關問題