2

Ubuntu12.04でHadoop1.0.3、Pig0.11.0を使用しています。HDFSのpart-m-00000ファイルの内容は以下のとおりです。

training @ BigDataVM:〜/ Installations / hadoop-1.0.3 $ bin / hadoop fs -cat /user/training/user/part-m-00000
1、Praveen、20、India、M
2、Prajval、5、India、M
3、Prathibha、15、インド、F

私はそれをバッグに入れて、それからそれを以下のようにろ過しています。

Users1 = load'/ user / training / user / part-m-00000' as(user_id、name、age:int、country、gender);
Fltrd=ユーザー1を年齢<=16でフィルタリングします。

しかし、Users1をダンプすると、 5つのレコードがコンソールに表示されます。ただし、Fltrdをダンプしても、レコードはフェッチされません。

Fltrdをダンプします。

以下の警告はPigコンソールに表示されます

2013-02-24 16:19:40,735[メイン]警告org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher-警告ACCESSING_NON_EXISTENT_FIELDが12回発生しました。

簡単な間違いをしたようですが、それが何であるか理解できませんでした。これを手伝ってください。

4

1 に答える 1

1

ロード関数を定義していないため、Pigはデフォルトの区切り文字が'\t'であるPigStorageを使用します。

part-m-00000がテキストファイルの場合は、区切り文字を'、'に設定してみてください。

Users1 = load '/user/training/user/part-m-00000' using PigStorage(',') 
  as (user_id, name, age:int, country, gender);

それがSequenceFileの場合は、この質問に対するDolanまたは私の回答を参照してください。

于 2013-02-24T13:05:03.933 に答える