内容简介:Pig是个不错的数据流语言,可以用于数据处理中的一些场景,比如日志分析。在这里,我们假设有如下的数据:现在,我们想提取其中年龄大于20岁且小于30岁的人的记录,然后按照年龄升序进行存储。
Pig是个不错的数据流语言,可以用于数据处理中的一些场景,比如日志分析。
在这里,我们假设有如下的数据:
num,name,age 1,zhangsan,20 2,lisi,30 3,wangwu,25
现在,我们想提取其中年龄大于20岁且小于30岁的人的记录,然后按照年龄升序进行存储。
对于这个简单的需求,我们可以使用Pig的本地模式进行操作:
pig -x local
进入了grunt交互模式下,我们进行如下的操作:
grunt> patent = load 'patent.csv' using PigStorage(',') as (num,name,age); grunt> users = filter patent by age >= 20 and age <= 30; grunt> person = order users by age asc; grunt> store person into 'user' using PigStorage(',');
这个过程简单的说,类似如下的操作:
- 使用load函数加载文件,然后使用逗号进行分割,之后得到对应的字段。对于字段,我们可以设置其转换的类型,当然如果不进行设置的话,就是默认的bytearray。
- 我们调用filter对patent按照age进行过滤
- 使用order对users结果集按照age进行升序排序
- 使用store将person结果集保存在user目录下
这个过程,可以说是很简单和符合非编程操作人员的操作。在这个过程中,我们可以通过 dump person
在终端上打印其输出信息。
如果对应的目录存在,可以删除后再进行存储:
grunt> fs -rm -r -f user;
如果本地测试没有问题,那么我们将其编写在1个后缀为 .pig
的脚本中,其内容如下:
patent = load 'patent.csv' using PigStorage(',') as (num,name,age); users = filter patent by age > 20 and age <= 30; person = order users by age asc; store person into 'user' using PigStorage(',');
然后我们执行如下的命令进行运行:
dog@debian:~$ pig -f patent.pig
如果要进行语法的检验,可以使用 -c
选项:
dog@debian:~$ pig -c patent.pig
这样就是1个简单的Pig的处理过程。
参考文章:
https://www.ibm.com/developerworks/cn/linux/l-apachepigdataquery/
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 还在为数据清洗抓狂?这里有一个简单实用的清洗代码集
- 数据清洗&预处理入门完整指南
- 前嗅ForeSpider教程:字段的取值与清洗
- 008-Sentinel清洗RESTful的@PathVariable
- 数据分析的准备工作:从问题分析到数据清洗
- Excel还不会数据清洗?这四大类函数推荐你哦
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
物联网导论(第2版)
刘云浩 / 科学出版社 / 2013-8 / 45.00元
物联网是一个基于互联网、传统电信网等信息承载体,让所有能够被独立寻址的普通物理对象实现互联互通的网络。它具有普通对象设备化、自治终端互联化和普适服务智能化三个重要特征。 《物联网工程专业系列教材:物联网导论(第2版)》从物联网的感知识别层、网络构建层、管理服务层和综合应用层这四层分别进行阐述,深入浅出地为读者拨开萦绕于物联网这个概念的重重迷雾,引领求知者渐渐步入物联网世界,帮助探索者把握第三......一起来看看 《物联网导论(第2版)》 这本书的介绍吧!
图片转BASE64编码
在线图片转Base64编码工具
html转js在线工具
html转js在线工具