Apache Pig 基础教程

Apache Pig是一个用于处理大数据的平台,它提供了一个名为Pig Latin的高级语言,用于编写MapReduce程序。本文将通过一个简单的实际例子,介绍如何使用Pig Latin进行数据处理。

Pig的安装

Pig作为一个客户端服务器模式运行的解释器,它将简单的代码转换为复杂的MapReduce操作,这些操作由Hadoop分布式网络处理。以下是在不同操作系统上安装Pig的步骤:

# 在Red Hat兼容系统上安装Pig: $ sudo yum install pig # 在SLES系统上安装Pig: $ sudo zypper install pig # 在Ubuntu和其他Debian系统上安装Pig: $ sudo apt-get install pig

如果打算在Windows上运行Pig,建议使用VMWare Player或Oracle VirtualBox在Linux虚拟机上操作。安装Pig包后,可以开始使用grunt shell。

# 启动Grunt Shell (MRv1): $ export PIG_CONF_DIR=/usr/lib/pig/conf $ export PIG_CLASSPATH=/usr/lib/hbase/hbase-0.94.2-cdh4.2.1-security.jar:/usr/lib/ zookeeper/zookeeper-3.4.5-cdh4.2.1.jar $ pig # 启动Grunt Shell (YARN): $ export PIG_CONF_DIR=/usr/lib/pig/conf $ export PIG_CLASSPATH=/usr/lib/hbase/hbase-0.94.2-cdh4.2.1-security.jar:/usr/lib/zookeeper/zookeeper-3.4.5-cdh4.2.1.jar $ pig

一旦看到“grunt>”提示符,就可以开始在Pig上编写代码了。

假设是名为XYZ的零售店的分析主管。XYZ维护了所有在该店购物的顾客记录。本次练习的任务是在销售数据中创建一个名为“税”的新列,该列是销售额的5%,然后筛选出税额低于35美元的顾客。完成这个子集后,选择顾客编号最小的前两位顾客。以下是零售店的样本表格,保存为.csv格式。

编写Pig Latin查询

将逐步构建这个查询。以下是需要遵循的步骤:

步骤1:加载数据集到Pig可理解的格式,并创建临时存储,以便Pig查询可以直接引用表格。

Sales = LOAD 'dataset.csv' USING PigStorage (',') AS (Customer,Sales);

注意上述命令没有加载变量“年龄”。在处理大数据时,需要非常明确需要使用的变量,因此确保在代码中只选择那些对重要的变量。

步骤2:创建一个包含税值的新表格。

Tax = FOREACH Sales GENERATE Customer,Sales,Sales*0.05 as Tax : float;

上述命令生成了一个新的名为“税”的表格,包含所有三个列。现在表格看起来如下:

步骤3:根据税值低于35美元的条件,对整个表格进行子集筛选。

Lowtax = FILTER Tax BY Tax < 35;

此命令的输出将选择下表中的黄色单元格:

步骤4:现在需要对子集表格按顾客(ID)排序,并选择前两位顾客。

sortedcust = ORDER Lowtax BY Customer; top_two = LIMIT sortedcust 2;

步骤5:将临时文件存储到永久的csv文件中。

STORE sortedcust INTO 'salesreport' USING PigStorage (',');
Sales = LOAD 'dataset.csv' USING PigStorage (',') AS (Customer,Sales); Tax = FOREACH Sales GENERATE Customer,Sales,Sales*0.05 as Tax : float; Lowtax = FILTER Tax BY Tax < 35; sortedcust = ORDER Lowtax BY Customer; top_two = LIMIT sortedcust 2; STORE sortedcust INTO 'salesreport' USING PigStorage (',');
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485