2016-12-16 4 views
1

XMLファイルを入力として受け取り、いくつかのUDFを実行した後、ファイル内の子ノードのいずれかの値をすべて返すPigスクリプトを作成しようとしています。これは私が実行しているスクリプトです:XPathAllとPython UDFを使用したPigスクリプト

REGISTER 'piggybank-0.15.0.jar'; 
REGISTER 'function.py' USING streaming_python as myFunc; 
DEFINE XPathAll org.apache.pig.piggybank.evaluation.xml.XPathAll(); 
A = LOAD 'file.xml' using org.apache.pig.piggybank.storage.XMLLoader('Parent') as (x:chararray); 
B = FOREACH A GENERATE XPathAll(x, 'Parent/Child', true, true) as (y:tuple); 
C = FOREACH B myFunc.func(y); 
DUMP C; 

私はUDFを呼び出そうとした後、次のエラーを取得しています:

ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1200: <line 10, column 14> Syntax error, unexpected symbol at or near 'myFunc' 

注:私はタプルとしてそれを設定せずにBを説明するならば、私が手を結果B:{()}。私はmyFuncに間違ったことを呼んでいますか?私はBからmyFuncに行を渡す方法を理解できません。

答えて

0

foreachにgenerateキーワードがありません。

あなたは以下のようにコードを変更してみてください:

C = FOREACH B GENERATE myFunc.func(y); 
関連する問題