Hadoop-Pig介绍

本文详细介绍了Pig在Hadoop环境中的数据处理,包括Pig的加载、输出、数组操作、过滤、数据操作和聚合等常用函数的使用方法,如LOAD、DUMP、JOIN、FILTER、COUNT等,并提供了示例。同时,文章还讨论了Pig的常见问题,如日志清理、连接Hadoop的问题以及性能优化等。
摘要由CSDN通过智能技术生成

Hadoop-Pig常用函数介绍

1.Pig简介:

Pig在这个地方并不是指“猪”(我也不知道这个开发者的命名是什么想法),是指的一种数据处理工具,常用于配合Hadoop使用,用于处理大数据的分析与处理(数据批处理)。
因为Pig有一套专属的语法(与MySQL类似),所以相比于MapReduce来说,更适合做一些复杂度不高的数据筛选处理工作,只需要简单几行命令就可以获得可能几百行MapReduce代码带来的收益。

2.Pig表达式

类别 描述 示例
常数 就类似于编程语言中的常量(字符串,整数等等) “abc”, 1, 1.5
属性(名字指定) 取一个集合的属性(类似取MySQL数据某一行的某一个字段) .name
属性(位置指定) 取一个集合的属性(按照顺序取某一行) .$1
属性(消除歧义) 在JOIN之后属性可能会有歧义,使用该方式取属性 ::name
类型转换 强制类型转换 float(“1.22”)
算术 数学运算 x+y,x-y,x*y,x/y,x%y
三木运算符 参考编程语言三目运算符 (x == 1)?x:0
比对 逻辑比较符号 ==,!=,>,<,>=,<=,matches,is,is not
逻辑连接 参考MySQL的逻辑连接 AND OR NOT

3.Pig数据类型

类别 类型 描述 示例
数值 int 32位有符号整数 1
数值 long 64位有符号证书 1L
数值 float 32位浮点数 1.0F
数值 double 64位浮点数 1.0
字符串 chararray UTF-16格式字符串 “abcdefg”
二进制流 bytearray 字符数组
结构类型 tuple 参考MySQL的一行数据(元组) (1, 2, “abc”)
结构类型 bag 参考MySQL的多行数据 {(1,2),(3,4)}
结构类型 map 类似json(键必须是字符串) [‘xingming’#’luoxuan’]

4.Pig常用函数

数据准备:
test_input 内容如下(各字段之间默认以\t分割):

luoxuan     170     150
gongmengnan     160     130
chenxiaolong     165     150
luoxuan     175     150

test_score内容如下(各字段之间默认以\t分割):

luoxuan 100     100     90
gongmengnan     40      50      80
chenxiaolong    80      80      70
4.1加载函数

LOAD AS : 加载数据并按照格式进行封装,传递值到变量中
Exp:

A = LOAD 'test_input' AS (name: chararray, height: int, weight: double);

4.2输出函数

4.2.1 DUMP:

输出变量内容
Exp:

DUMP A;

结果如下:

(luoxuan, 170, 150)
(gongmengnan, 160, 130)
(chenxiaolong, 165, 150)
(luoxuan, 175, 150)
4.2.2 STORE INTO:

将内容输出到文件里面
Exp:

STORE C INTO 'output';
4.2.3 DESCRIBE:

查看变量数据结构
Exp:

DESCRIBE A;
A: {
   name: chararray,height: int,weight: int}
4.2.4 ILLUSTRATE:

查看示例(随机选取一条记录进行查看)
Exp:

ILLUSTRATE A;
A name:chararray height:int weight:int
gongmengnan 160 130

pig会在当前目录下新建output(必须之前不存在)文件夹,把结果放到文件夹下面

4.3数组操作函数

4.3.1 FOREACH GENERATE:

遍历数组每一项并获取对应字段(类似select a, b, c from table)
Exp:

FOREACH A GENERATE name;
luoxuan
gongmengnan
chenxiaolong
luoxuan
4.3.2 JOIN:

连接两个包数据(参考MySQL INNER JOIN,必须数据类型相同才能作为连接的字段)
Exp:

A = LOAD '/user/hadoop/test_pig_data/test_input' AS (name:chararray, height:int, weight:int);
B = LOAD 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值