2016-04-01 4 views
0

私は以下の2つのステートメントと大きく混乱しています。 1)正確にLOADステートメントがこの関係(学生)を格納する場所ですか、それはhdfs/PIG内部ストレージ/ローカルマシンですか?正確にPIGはその関係を保存します

example : student = LOAD 'HDFS:/student' using PigStorage(','); 

2)私がダンプの学生にしようとすると、 LOADステートメントが1〜2秒かかったときに結果を表示するのに30〜40秒かかります。ブタの内部ストレージからデータを取得しようとすると、なぜこの遅延が発生しますか?

誰でもこの疑念(好ましくは実行の流れ)をクリアできるならば、感謝します。ありがとうございました。

私のenv:私は学習目的でVMを使用しています。

答えて

1

LOADはデータを格納しませんが、ファイルへのポインタに過ぎません。 LOAD文を実行すると、MapReduceタスクは実行されません。

DUMPまたはSTOREの文の後に、MapReduceジョブが開始された後になります。 データが出力に表示され、データが正常に読み込まれたことが確認できます。

DUMPマルチクエリの実行が無効になり、実行が遅くなるため時間がかかります。 (DUMPステートメントをデバッグ目的でスクリプトに組み込んだ場合は、それらを削除する必要があります。

STOREコマンドを使用できます。

+0

返信いただきありがとうございます。ファイルへのポインタによって、データがまだHDFS上にあることを意味しますか? LOADコマンドはGruntシェルで処理するファイルのインスタンスを作成しますか? – user1708054

+0

はい。マップモードで豚を実行している場合はローカルHDFSにデータがあり、ローカルモードで実行している場合はローカルになります –

+1

ダンプまたはストア文がない限り、実際には何も実行されません。ストアまたはダンプが要求された場合にのみ、Pigは実行計画(map-reduceジョブ)を生成して実行します。 – LiMuBei

関連する問題