文档章节

Apache Pig 学习笔记

voyage1314
 voyage1314
发布于 2014/05/09 20:18
字数 871
阅读 874
收藏 3

1.Pig安装

目前最新稳定版为pig-0.12.1,下载解压到/opt/tools/目录下。

由于pig是基于hadoop的上层应用,所以需要先部署好hadoop集群。对于hadoop-0.23.0以上的版本,pig虽然也已经支持,但是需要重新编译pig,不然执行dump命令时会报错显示版本不兼容。

重新编译pig也很简单,只需一条命令即可,在$pig_home/目录下,即/opt/tools/pig-0.12.1/ 下输入:

ant -Dhadoopversion=23

若提示ant命令无法找到,直接去apache官网下载ant,解压到/opt/tools/apache-ant-1.9.3

cd到pig目录,执行

/opt/tools/apache-ant-1.9.3/bin/ant -Dhadoopversion=23

编译可能会很久,但是慢慢等吧,最后显示successful就表示ok了,然后重命名文件

mv pig.jar pig-0.12.1.jar
mv pig-withouthadoop.jar pig-0.12.1-withouthadoop.jar

接下来配置环境变量 vim /etc/profile

export PIG_HOME=/opt/tools/pig-0.12.1
export PIG_CLASSPATH=$HADOOP_HOME/etc/hadoop
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$PIG_HOME/bin:$PATH

保存退出,执行下列命令使之生效

source /etc/profile


2.Pig学习概要

2.1 执行方式


交互式shell(命令行)
脚本文件(建议以.pig作为扩展名)
本地模式
pig -x local
pig -x local log.pig
Mapreduce模式
pig -x mapreduce (或 pig)
pig -x mapreduce log.pig(或 pig log.pig)

2.2 执行Pig Latin的一般操作如下:

  • LOAD : 从文件系统hdfs读取数据

  • 一系列声明(如GROUP,FOREACH,FILTER等)进行数据操作

  • 最后DUMP打印输入结果或者STORE存储数据到hdfs

2.3 调试Pig Latin

  • DUMP (or \d):输出结果到终端

  • DESCRIBE (or \de):查看一个关系的结构

  • EXPLAIN (or \e):查看一个关系的逻辑结构,物理机构和map reduce执行计划

  • ILLUSTRATE (or \i):查看声明语句的每一步执行情况

2.4 大小写问题

  • 字段名,关系名,和方法名,如PigStorage,COUNT等,是大小写敏感的。

  • 关键字,如LOAD,USING,AS,GROUP,BY,FOREACH,GENERATE,DUMP,STORE等不区分大小写

2.5 数据类型

Complex Types:

  • 关系(relations):一个关系就是一个包,确切的说是一个外包(outer bag),例如A。相当于数据库中的表。

A = LOAD 'student' USING PigStorage() AS (name:chararray, age:int, gpa:float);
DUMP A;
(John,18,4.0F)
(Mary,19,3.8F)
(Bill,20,3.9F)
(Joe,18,3.8F)

  • 包(bags):一个包是一系列元祖的集合

    外包:

B = LOAD 'data' as (f1:int, f2:int, f3;int);
DUMP B;
(1,2,3)
(4,2,1)
(8,3,4)
(4,3,3)

        内包:

X = GROUP C BY f1;
DUMP X;
(1,{(1,2,3)})
(4,{(4,2,1),(4,3,3)})
(8,{(8,3,4)})


  • 元祖(tuples):一个元祖是一系列有序字段的集合

(John,18,4.0F)

  • 映射(map):映射是一系列键值对的集合

[name#John,phone#5551212]

  • 字段(fields):一个字段就是一个数据

        字段可以通过名字或者位置来确定,如上面例子A,第一列name可以用$0表示,第二例age可以用$1表示。

Simple Types:

  • int:32bit,如10

  • long:64bit,如10l或10L

  • float:32bit,如10.5F

  • double:64bit,如10.5

  • chararray:UTF-8格式,如hello world

  • bytearray:Byte array (blob)

  • boolean:true/false(or TRUE/FALSE)

  • datetime:1970-01-01T00:00:00.000+00:00

  • biginteger:200000000000

  • bigdecimal:33.456783321323441233442

2.6 Pig Latin中的Nulls

本文将持续更新!!!


© 著作权归作者所有

voyage1314
粉丝 7
博文 9
码字总数 6947
作品 0
杨浦
程序员
私信 提问
玩转大数据系列之Apache Pig高级技能之函数编程(六)

原创不易,转载请务必注明,原创地址,谢谢配合! http://my.oschina.net/u/1027043/blog Pig系列的学习文档,希望对大家有用,感谢关注散仙! Apache Pig的前世今生 Apache Pig如何自定义UDF...

九劫散仙
2015/03/18
118
0
Apache Pig学习笔记(二)

主要整理了一下,pig里面的一些关键词的含义和用法,pig虽然是一种以数据流处理为核心的框架,但数据库的大部分关键词和操作,在pig里面基本上都能找到对应的函数,非常灵活与简洁,春节前的...

九劫散仙
2015/02/13
164
0
Hadoop家族学习路线图

权声明:本文为博主原创文章,未经博主允许不得转载。 目录(?)[+] 主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, Avro, Ambari, Chukwa,新增...

_Mr_Computer_
2016/07/13
0
0
Hadoop家族学习路线图(转)

Hadoop家族学习路线图 Hadoop家族系列文章,主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, Avro, Ambari, Chukwa,新增加的项目包括,YARN,...

冯辉
2016/11/03
58
0
Apache Pig 概述

什么是Apache Pig? Apache Pig是MapReduce的一个抽象。它是一个工具/平台,用于分析较大的数据集,并将它们表示为数据流。Pig通常与 Hadoop 一起使用;我们可以使用Apache Pig在Hadoop中执行...

h8b6pk7m7r8
2017/11/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

spring-boot-maven-plugin not found的解决方案。

通过IDE创建一个springboot项目, <plugin> <groupId>org.springframework.boot</groupId>//这行红色 <artifactId>spring-boot-maven-plugin</artifactId>//这行红色</plugin> 提示sprin......

一片云里的天空
今天
52
0
OSChina 周三乱弹 —— 我可能是个憨憨

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @宇辰OSC :分享Hare Je的单曲《Alan Walker-Faded(Hare Je remix)》: #今日歌曲推荐# 可以放松大脑的一首纯音乐 《Alan Walker-Faded(Har...

小小编辑
今天
99
0
搞定SpringBoot多数据源(3):参数化变更源

春节将至,今天放假了,在此祝小伙伴们新春大吉,身体健康,思路清晰,永远无BUG! 一句话概括:参数化变更源意思是根据参数动态添加数据源以及切换数据源,解决不确定数据源的问题。 1. 引言...

mason技术记录
昨天
99
0
sql 基础知识

sql 基础知识 不要极至最求一条sql语句搞定一切,可合理拆分为多条语句 1. sql 变量定义与赋值 Sql 语句中,直接在SELECT使用@定义一个变量,如:[@a](https://my.oschina.net/a8856225a)。 ...

DrChenXX
昨天
57
0
MacOSX 安装 TensorFlow

TensorFlow是一个端到端开源机器学习平台。它拥有一个包含各种工具、库和社区资源的全面灵活生态系统,可以让研究人员推动机器学习领域的先进技术的。 准备 安装 Anaconda TensorFlow 安装的...

叉叉敌
昨天
79
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部