2016-03-25 7 views
0

こんにちは皆、ファイル形式は次のようである:
apacheの豚負荷データ私はapacheの豚を使用したデータのロードに関する問題を抱えている

"1","2","xx,yy","a,sd","3" 

だから私は、複数の区切り文字"," 2doubleを使用して、それをロードします引用符など1つのカンマ:私はそれを行うことができます.How

A = LOAD 'file.csv' USING PigStorage('","') AS (f1,f2,f3,f4,f5); 

しかしPigStorageは、複数の区切り文字","を受け入れていないのですか?どうもありがとうございました!

答えて

0

PigStorageは区切り文字として1文字を使用します。の組み込み関数を使用します。 piggybank.jarをダウンロードして、あなたのpigscriptと同じフォルダに保存してください。あなたのpigscriptでjarファイルを登録してください。

REGISTER piggybank.jar; 

DEFINE CSVLoader org.apache.pig.piggybank.storage.CSVLoader(); 

A = LOAD 'test1.txt' USING CSVLoader(',') AS (f1:int,f2:int,f3:chararray,f4:chararray,f5:int); 
B = FOREACH A GENERATE f1,f2,f3,f4,f5; 
DUMP B; 

代替オプションは、ラインにデータをロードしてから使用することですSTRSPLIT

A = LOAD 'test1.txt' USING TextLoader() AS (line:chararray); 
B = FOREACH A GENERATE FLATTEN(STRSPLIT(line, '","')); 
DUMP B; 
関連する問題