Apache Pig 简明教程
Apache Pig - Execution
在上一个章节中,我们解释了如何安装 Apache Pig。在这个章节中,我们将讨论如何执行 Apache Pig。
Apache Pig Execution Mechanisms
Apache Pig 脚本可以通过以下三种方式执行:交互模式、批处理模式和嵌入模式。
-
Interactive Mode (Grunt Shell) − 您可以使用 Grunt Shell 以交互模式运行 Apache Pig。在此 Shell 中,您可以输入 Pig Latin 语句并获取输出(使用 Dump 操作符)。
-
Batch Mode (脚本) − 您可以通过使用 .pig 扩展名在单个文件中编写 Pig Latin 脚本,以批处理模式运行 Apache Pig。
-
Embedded Mode (UDF) − Apache Pig 提供在编程语言(例如 Java)中定义我们自己的函数(*U*ser *D*efined *F*unctions)并将其用于我们脚本中的服务。
Invoking the Grunt Shell
您可以使用 −x 选项,按所需模式(本地/MapReduce)调用 Grunt shell,如下所示。
Local mode |
MapReduce mode |
Command − $ ./pig –x local |
Command − $ ./pig -x mapreduce |
Output − |
Output − |
这两个命令中的任一个都将给你 Grunt shell 提示符,如下所示。
grunt>
你可以使用 ‘ctrl + d’. 退出 Grunt shell
在调用 Grunt shell 之后,你可以直接在其中输入 Pig Latin 语句子来执行 Pig 脚本。
grunt> customers = LOAD 'customers.txt' USING PigStorage(',');
Executing Apache Pig in Batch Mode
你可以将完整的 Pig Latin 脚本写到文件中,并使用 –x command 来执行它。假设我们在一个名为 sample_script.pig 的文件中有一个 Pig 脚本,如下所示。
Sample_script.pig
student = LOAD 'hdfs://localhost:9000/pig_data/student.txt' USING
PigStorage(',') as (id:int,name:chararray,city:chararray);
Dump student;
现在,你可以按照以下方式执行以上文件中的脚本。
Local mode |
MapReduce mode |
$ pig -x local Sample_script.pig |
$ pig -x mapreduce Sample_script.pig |
Note − 我们将在后续章节中详细讨论如何在 Bach mode 和 embedded mode 中运行 Pig 脚本。