2016-05-12 9 views
0

私はデータの1列を生成する単純な豚の仕事を持っています。出力から空白行を排除するために、私は、次のコマンドを書いた:PIGは空白行を生成します

items = FOREACH inputs GENERATE item; 
items = DISTINCT items; 
items = FILTER items BY ($0 IS NOT NULL); 
items = FILTER items BY NOT IsEmpty(TOBAG($0)); 
STORE items INTO '$output/items'; 

私はNULLと空のエントリを削除しようとしますが、私はまだHDFS上の出力ファイルに空白行を取得します。

私はとの最後の行(すなわちSTORE)を交換する際には、端末出力が空白の出力行を表示しません

DUMP items; 

、注目に値します。

この問題の根本原因に関するご意見は高く評価されます。

答えて

0

自分で修正しました。

空白の解析入力が改行に変換されたことが判明しました。だから、次はうまくいった(3行目参照):

items = FOREACH inputs GENERATE item; 
items = DISTINCT items; 
items = FOREACH items GENERATE ($0=='\n'?NULL:$0); 
items = FILTER items BY ($0 IS NOT NULL) AND (NOT IsEmpty(TOBAG($0))); 
STORE items INTO '$output/items'; 
関連する問題