2013-07-18 58 views
2

如何處理CSV文件,其中一些字段用引號括起來?Apache Pig過程CSV與包裹在引號中的字段

線爲例(字段分隔符是 '')

我COLUMN1,我列2, 「是的,我很欄3」

的例子有三個處理列。但下面的例子會說我有四列:

A =使用PigStorage(',')加載'/ path/to/file';

請有任何建議,鏈接到資源..?

+3

嘗試[org.apache.pig.piggybank.storage.CSVLoader(HTTP://豬。 apache.org/docs/r0.8.1/api/org/apache/pig/piggybank/storage/CSVLoader.html) –

回答

0

嘗試加載數據,然後執行FOREACH GENERATE將數據重新生成任何您需要的格式。 。對於您需要刪除引號中的字段,使用REPLACE($ 3 '\'「)

data = LOAD 'testdata' USING PigStorage(","); 
data = FOREACH data GENERATE 
    (chararray) $0    AS col1:chararray, 
    (chararray) $1    AS col2:chararray, 
    (chararray) REPLACE($3, '\"') AS col3:chararray); 
+1

這不是一個解決方案,因爲Pig會定義四列而不是三列,例如column =「yes,我是第3列「如果使用PigStorage(」,「),則是兩列; – Tioma