执行 Pig 脚本

1.执行 Pig 脚本

在本章中,我们将了解 Pig 脚本执行的整个概念。 我们将介绍Pig Script中的基本注释,有助于在文件中编写脚本。 此外,我们将看到如何在批处理模式下执行 Pig 脚本以及如何使用适当的步骤和示例并在 HDFS执行Pig 脚本。

2. Apache Pig运行脚本简介

将Pig Latin语句和Pig命令放置在单个文件中,使用Pig脚本。 使用* .pig扩展名识别文件是一种很好的做法,后缀名pig并不是必需的。

我们可以从命令行和Grunt shell运行Pig脚本。

此外,要使用参数替换将值传递给参数。

3.注释 Pig 脚本

我们可以在Pig脚本中包含注释,同时在文件中编写脚本。 

多行注释:

多行注释将以'/ *'开头,并以'* /'结尾

1. /* These are the multi-line comments

2. In the pig script */

单行注释:

单行注释将以' – '开头:

1. –we can write single line comments like this.

4.批处理模式执行Pig脚本

我们在批处理模式下执行Pig脚本。

第一步

将所有必需的Pig Latin语句和命令写入单个文件。 然后将其保存为.pig文件。

第二步

执行Apache Pig脚本。 要从shell(Linux)执行Pig脚本:

本地模式

1. $ pig -x local Sample_script.pig

MapReduce 模式

1. $ pig -x MapReduce Sample_script.pig

可以使用exec命令从Grunt shell执行脚本:

1. grunt> exec /sample_script.pig

5.从HDFS执行Pig脚本

可以执行驻留在HDFS中的Pig脚本。 假设在名为/ pig_data /的HDFS目录中有一个名为Sample_script.pig的Pig脚本。 

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

Pig脚本示例

假设在HDFS中有一个文件Employee_details.txt,其中包含以下内容:

1.Employee_details.txt
2.001,mehul,chourey,21,9848022337,Hyderabad
3.002,Ankur,Dutta,22,9848022338,Kolkata
4.003,Shubham,Sengar,22,9848022339,Delhi
5.004,Prerna,Tripathi,21,9848022330,Pune
6.005,Sagar,Joshi,23,9848022336,Bhuwaneshwar
7.006,Monika,sharma,23,9848022335,Chennai
8.007,pulkit,pawar,24,9848022334,trivendram
9.008,Roshan,Shaikh,24,9848022333,Chennai

在同一个HDFS目录下也有一个名为sample_script.pig的示例脚本。 包含对员工进行操作和转换的语句:

1.Employee = LOAD 'hdfs://localhost:9000/pig_data/Employee_details.txt' USING PigStorage(',')
2.as (id:int, firstname:chararray, lastname:chararray, phone:chararray, city:chararray);
3.Employee_order = ORDER Employee BY age DESC;
4.Employee_limit = LIMIT Employee_order 4;
5.Dump Employee_limit;

该脚本在第一个语句中将名为Employee_details.txt的文件中的数据加载为名为Employee的relation中;

然后,脚本将按照年龄降序排列关系的元组,并将其作为Employee_order存储在第二个语句中;

然后,该脚本将在第三个语句中将Employee_order的前4个元组存储为Employee_limit。

最后,第四条语句将转储relation 限制位4条内容到Employee_limit;

让我们执行sample_script.pig。

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

通过这种方式,Pig会被执行并为提供如下输出:

1.(7,Pulkit,Pawar,24,9848022334,trivendram)
2.(8,Roshan,Shaikh,24,9848022333,Chennai)
3.(5,Sagar,Joshi,23,9848022336,Bhuwaneshwar)
4.(6,Monika,Sharma,23,9848022335,Chennai)
5.2015-10-19 10:31:27,446 [main] INFO org.apache.pig.Main - Pig script completed in 12
6.minutes, 32 seconds and 751 milliseconds (752751 ms)

执行 Pig 脚本

发表评论

邮箱地址不会被公开。 必填项已用*标注

16 − 十四 =

滚动到顶部