2016-03-29 15 views
1

ParquetのログはPIGです。ログスキーマには、USERフィールドにネストされたフィールドFULLが含まれています。 FULLはPigのキーワードですので、ファイルを読み込めません。豚はコンパイル時エラーを出しています。このようなフィールド名をエスケープする方法はありません。スキーマの列名を変更するのは本当に不利になります。これは私がApache Pigのエスケープカラム名

user_parquet = LOAD 'test' USING org.apache.parquet.pig.ParquetLoader(); 
user_normalized = FOREACH user_parquet GENERATE ..... USER.FULL as user_full ... 
私は \, ``, ''で脱出しようとした

をロードするために使用していますが、それらのどれも働いていないものです!

答えて

1

基本的に私が代わりにフィールド名のフィールド番号とフィールドを参照することで、問題を解決: -

user_parquet = LOAD 'test' USING org.apache.parquet.pig.ParquetLoader(); 
user_normalized = FOREACH user_parquet GENERATE ..... USER.$0 as user_full ... 

豚、変数名として使用する場合は、キーワードをエスケープする方法はありませんなどの他の言語として。

+0

変数またはキーワード?https://pig.apache.org/docs/r0.7.0/piglatin_ref2.html#Keywords –

+0

私はキーワードとなる変数名を意味しました。私の場合は「フル」 –

関連する問題