1

ローカルの HDFS にファイルがあり、':::' で区切られています。

ただし、次のコマンドを使用している場合

A = load '/user/vishal/WordCount/hw3data/c0001' using PigStorage(':::') as (a, b, c);

次のエラーが表示されます----

エラー 1200: 引数 '[:::]' で 'PigStorage' をインスタンス化できませんでした

正確には何が問題になる可能性がありますか?

ありがとう

4

1 に答える 1

3

PigStorage は、1 文字の区切り記号のみをサポートします。
解決策は、Donald の回答に従うか、カスタム ローダーを作成したくない場合はMyRegExLoader を参照することです。あなたの場合、次のようになります。

REGISTER '/my_pig_home/contrib/piggybank/java/piggybank.jar'
A = LOAD '/user/vishal/WordCount/hw3data/c0001' 
  USING org.apache.pig.piggybank.storage.MyRegExLoader(
    '([^\\:]+):::([^\\:]+):::([^\\:]+)') 
      as (a:chararray, b:chararray, c:chararray);
于 2013-02-28T09:02:58.727 に答える