页面树结构

2017-11-09 ApacheCN 开源组织,第二期邀请成员活动,一起走的更远 : http://www.apachecn.org/member/209.html


MachineLearning 优酷地址 : http://i.youku.com/apachecn

转至元数据结尾
转至元数据起始

概述

Apache Pig是分析大型数据集的平台,包括用于表达数据分析程序的高级语言,以及用于评估这些程序的基础设施。Pig程序的显着特点在于它们的结构适用于大量的并行化,从而使它们能够处理非常大的数据集。

 

支持的解释器类型 

  • %pig.script(默认的Pig解释器,所以你可以使用%pig

    %pig.script就像猪unt壳。您可以在Pig grunt shell中运行的任何操作都可以在解释器中运行%pig.script,它用于运行Pig脚本,您不需要可视化数据,适合数据发送。

  • %pig.query

    %pig.query与之相比稍有不同%pig.script。它用于通过猪拉丁进行探索性数据分析,您可以利用齐柏林的可视化功能。还有就是在两者之间的最后一条语句2个细微差别%pig.script%pig.query

    • 最后一句话中没有猪别名%pig.query(见下面的例子)。
    • 最后一个声明必须单行 %pig.query


支持运行时模式

  • 本地
  • MapReduce的
  • Tez_Local(仅支持Tez 0.7)
  • Tez(仅支持Tez 0.7)

 

如何使用

如何设置Pig

  • 本地模式

    在本地模式下不需要做任何事情

  • MapReduce模式

    需要指定HADOOP_CONF_DIR ZEPPELIN_HOME/conf/zeppelin-env.sh

  • Tez本地模式

    tez本地模式不需要做任何事情

  • Tez模式

    需要指定HADOOP_CONF_DIR和TEZ_CONF_DIR ZEPPELIN_HOME/conf/zeppelin-env.sh

如何配置解释器

在口译员菜单中,您必须创建一个新的Pig解释器。默认情况下,Pig解释器具有以下属性。您可以在这里设置任何Pig属性,将其传递给Pig引擎。(如tez.queue.name&mapred.job.queue.name)。此外,我们使用段落标题作为作业名称(如果存在),否则使用猪脚本的最后一行。所以你可以使用它来查找在YARN RM UI中运行的应用程序。

属性默认描述
zeppelin.pig.execTypemapreduce猪运行时的执行模式。本地| mapreduce | tez_local | TEZ
zeppelin.pig.includeJobStatsfalse是否显示jobStats信息 %pig.script
zeppelin.pig.maxResult1000最大行号显示在 %pig.query
tez.queue.namedefaulttez引擎的队列名称
mapred.job.queue.namedefaultmapreduce引擎的队列名称

案例

pig
%pig 
 
bankText = load 'bank.csv' using PigStorage(';'); 
bank = foreach bankText generate $0 as age, $1 as job, $2 as marital, $3 as education, $5 as balance;  
bank = filter bank by age != '"age"'; 
bank = foreach bank generate (int)age, REPLACE(job,'"','') as job, REPLACE(marital, '"', '') as marital, (int)(REPLACE(balance, '"', '')) as balance; 
store bank into 'clean_bank.csv' using PigStorage(';'); -- this statement is optional, it just show you that most of time %pig.script is used for data munging before querying the data.   
pig.query

获取年龄小于30的每个年龄的数量

%pig.query 
 
bank_data = filter bank by age < 30; 
b = group bank_data by age; 
foreach b generate group, COUNT($1);  

 

与上述相同,但使用动态文本形式,以便使用可以在文本框中指定变量maxAge。(见下面的屏幕截图)。动态形式是齐柏林很酷的功能,您可以参考此链接)了解详情。

%pig.query 
 
bank_data = filter bank by age < ${maxAge=40}; 
b = group bank_data by age; 
foreach b generate group, COUNT($1) as count;  

 

获取具体婚姻类型的每个年龄的数量,也在这里使用动态表单。用户可以在下拉列表中选择婚姻类型(见下面的屏幕截图)。

%pig.query 
 
bank_data = filter bank by marital=='${marital=single,single|divorced|married}'; 
b = group bank_data by age; 
foreach b generate group, COUNT($1) as count;  

 

以上示例在Zeppelin的Pig教程中,您可以查看详细信息。这是截图。

数据共享%pig%pig.query,这样就可以做一些常见的工作%pig,并以此为基础进行的数据不同种类的查询%pig。此外,我们建议您明确指定别名,以便可视化文件正确显示列名称。在上面的例子2和3中%pig.query,我们命名COUNT($1)count。如果你不这样做,那么我们将使用position来命名它。例如在上面的第一个例子中%pig.query,我们将用col_1图表来表示COUNT($1)

 

  • 无标签