ApachePig-スクリプトの実行

この章では、ApachePigスクリプトをバッチモードで実行する方法を説明します。

Pigスクリプトのコメント

ファイルにスクリプトを記述しているときに、以下に示すようにコメントを含めることができます。

複数行コメント

複数行コメントは「/ *」で始まり、「* /」で終わります。

/* These are the multi-line comments 
  In the pig script */

単一行コメント

単一行コメントは「-」で始まります。

--we can write single line comments like this.

バッチモードでのPigスクリプトの実行

Apache Pigステートメントをバッチモードで実行している間は、以下の手順に従ってください。

ステップ1

必要なすべてのPigLatinステートメントを1つのファイルに書き込みます。すべてのPigLatinステートメントとコマンドを1つのファイルに記述して、次のように保存できます。.pig ファイル。

ステップ2

ApachePigスクリプトを実行します。以下に示すように、シェル(Linux)からPigスクリプトを実行できます。

ローカルモード MapReduceモード
$ pig -x local Sample_script.pig $ pig -x mapreduce Sample_script.pig

以下に示すように、execコマンドを使用してGruntシェルからも実行できます。

grunt> exec /sample_script.pig

HDFSからのPigスクリプトの実行

HDFSにあるPigスクリプトを実行することもできます。名前が付いたPigスクリプトがあるとします。Sample_script.pig 名前の付いたHDFSディレクトリ内 /pig_data/。以下のように実行できます。

$ pig -x mapreduce hdfs://localhost:9000/pig_data/Sample_script.pig

ファイルがあると仮定します student_details.txt 次のコンテンツを含むHDFSで。

student_details.txt

001,Rajiv,Reddy,21,9848022337,Hyderabad 
002,siddarth,Battacharya,22,9848022338,Kolkata
003,Rajesh,Khanna,22,9848022339,Delhi 
004,Preethi,Agarwal,21,9848022330,Pune 
005,Trupthi,Mohanthy,23,9848022336,Bhuwaneshwar 
006,Archana,Mishra,23,9848022335,Chennai 
007,Komal,Nayak,24,9848022334,trivendram 
008,Bharathi,Nambiayar,24,9848022333,Chennai

名前の付いたサンプルスクリプトもあります sample_script.pig、同じHDFSディレクトリ内。このファイルには、操作と変換を実行するステートメントが含まれています。student 以下に示すように、関係。

student = LOAD 'hdfs://localhost:9000/pig_data/student_details.txt' USING PigStorage(',')
   as (id:int, firstname:chararray, lastname:chararray, phone:chararray, city:chararray);
	
student_order = ORDER student BY age DESC;
  
student_limit = LIMIT student_order 4;
  
Dump student_limit;
  • スクリプトの最初のステートメントは、という名前のファイルにデータをロードします student_details.txt 名前の付いた関係として student

  • スクリプトの2番目のステートメントは、関係のタプルを年齢に基づいて降順で配置し、次のように格納します。 student_order

  • スクリプトの3番目のステートメントは、の最初の4つのタプルを格納します。 student_order なので student_limit

  • 最後に、4番目のステートメントは関係の内容をダンプします student_limit

実行してみましょう sample_script.pig 以下に示すように。

$./pig -x mapreduce hdfs://localhost:9000/pig_data/sample_script.pig

Apache Pigが実行され、次の内容の出力が表示されます。

(7,Komal,Nayak,24,9848022334,trivendram)
(8,Bharathi,Nambiayar,24,9848022333,Chennai) 
(5,Trupthi,Mohanthy,23,9848022336,Bhuwaneshwar) 
(6,Archana,Mishra,23,9848022335,Chennai)
2015-10-19 10:31:27,446 [main] INFO  org.apache.pig.Main - Pig script completed in 12
minutes, 32 seconds and 751 milliseconds (752751 ms)