pig是hadoop客户端,使用类似于SQL的面向数据流的语言pig latin,这个语言可以完成排序,过滤,求和,关联等操作,可以支持自定义函数。Pig自动把pig latin 映射为Map-Reduce作业上传到集群运行,减少用户编写java程序的苦恼。

Pig是专门用于处理来自于HDFS的数据的。

Pig提供了一套流式的数据处理语言,转换为MapReduce,来处理HDFS中的数据。

*HBase是用来存储和查询数据

1、如何使用?

直接解压缩,执行bin/pig,就进入到grunt命令行

2、基础命令

2.1、load 加载HDFS进入Pig

a = load '/user.data';
#默认加载的是用制表符分隔的数据
# 访问列的时候,用$加上索引访问
dump a; b=load '/user.data2' using PigStorage(';');
#加载文件时指定分隔符
dump b; c = load '/user.data' using HBaseStorage;
#可以加载HBase中的数据
dump c; d = load '/user.data' as (id,name);
#指定字段名
dump d; e = load '/user.data' as (id:int,name:bytearray);
#指定字段名和类型
dump e;

2.2、store...into...写入到HDFS中

store d into '/user.data3';
fs -text 'user.data3';

2.3、describe 显示关系结构

2.4、foreach...generate... 迭代每一行记录

f = foreach e generate id,name;
dump f; g = foreach a generate $0;
dump g;
#或者
g = foreach a generate $0 as id;
dump g;

2.6、filter...by... 过滤

h = filter f by id<2;
dump h;

2.7、group... by...分组

group h by uid;

2.8、order...by...

i = order h by uid desc;

2.9、distinct 去重

distinct h;

2.10、limit 限制记录数

l = limit h 50;

2.11、sample 取样

sample h 0.1;
#抽取整体的10%的样本

2.12、join 合并

join user by id, role by uid;

2.13、parallel 并行

3、自定义函数

3.1、自定义过滤函数

继承自FilterFunc

3.2、自定义输入,输出函数

Pig简单入门的更多相关文章

  1. 用IntelliJ IDEA创建Gradle项目简单入门

    Gradle和Maven一样,是Java用得最多的构建工具之一,在Maven之前,解决jar包引用的问题真是令人抓狂,有了Maven后日子就好过起来了,而现在又有了Gradle,Maven有的功能它都 ...

  2. [原创]MYSQL的简单入门

    MYSQL简单入门: 查询库名称:show databases; information_schema mysql test 2:创建库 create database 库名 DEFAULT CHAR ...

  3. Okio 1.9简单入门

    Okio 1.9简单入门 Okio库是由square公司开发的,补充了java.io和java.nio的不足,更加方便,快速的访问.存储和处理你的数据.而OkHttp的底层也使用该库作为支持. 该库极 ...

  4. emacs最简单入门,只要10分钟

    macs最简单入门,只要10分钟  windwiny @2013    无聊的时候又看到鼓吹emacs的文章,以前也有几次想尝试,结果都是玩不到10分钟就退出删除了. 这次硬着头皮,打开几篇文章都看完 ...

  5. 【java开发系列】—— spring简单入门示例

    1 JDK安装 2 Struts2简单入门示例 前言 作为入门级的记录帖,没有过多的技术含量,简单的搭建配置框架而已.这次讲到spring,这个应该是SSH中的重量级框架,它主要包含两个内容:控制反转 ...

  6. Docker 简单入门

    Docker 简单入门 http://blog.csdn.net/samxx8/article/details/38946737

  7. Springmvc整合tiles框架简单入门示例(maven)

    Springmvc整合tiles框架简单入门示例(maven) 本教程基于Springmvc,spring mvc和maven怎么弄就不具体说了,这边就只简单说tiles框架的整合. 先贴上源码(免积 ...

  8. git简单入门

    git简单入门 标签(空格分隔): git git是作为程序员必备的技能.在这里就不去介绍版本控制和git产生的历史了. 首先看看常用的git命令: git init git add git comm ...

  9. 程序员,一起玩转GitHub版本控制,超简单入门教程 干货2

    本GitHub教程旨在能够帮助大家快速入门学习使用GitHub,进行版本控制.帮助大家摆脱命令行工具,简单快速的使用GitHub. 做全栈攻城狮-写代码也要读书,爱全栈,更爱生活. 更多原创教程请关注 ...

随机推荐

  1. (ACM)C++ STL 训练(第一天)

    因为老师说ACM考的是纯C++,所以打算抛弃VS的VC++不用了,针对纯C++的编译器有Intel Compiler(不过要钱),MinGw(个人用的),当然还有微软的VC++ 编译器,IDE你们可以 ...

  2. windows下SSH客户端远程访问Linux出现错误

  3. 使用jquery控制只能输入数字,并且关闭输入法(转)

    控制文本框只能输入数字是一个很常见的需求,比如电话号码的输入.数量的输入等,这时候就需要我们控制文本框只能输入数字.在用js控制之后在英文输入法的状态下去敲击键盘上的非数字键是输不进去的,然而当你转到 ...

  4. Valid format values for declare-styleable/attr tags[转]

    http://chaosinmotion.com/blog/?p=179 reference string color dimension boolean integer float fraction ...

  5. 在一个Activity里面的TextView上面添加网页链接,启动后到另一个Activity里面!

    可以添加很多的属性,样式或者是什么的,目前要完成的功能是 点击TextView里面的某个文字链接,进入另外一个Activity里面!例如你可以做微博里面的 @XXX: 点击后进入他的个人主页! 下面都 ...

  6. [resource]Github上维护的一个机器学习相关的框架,库和工具列表

    https://github.com/josephmisiti/awesome-machine-learning  A curated list of awesome Machine Learning ...

  7. Matlab与科学计算的基本运算

    各种允许的比较关系 >, >=, <, <=, ==,~=, find(), all(), any() 例:>> A=[1,2,3;4,5,6;7,8,0]A = ...

  8. ssh连接慢

    suse刚装完,开始用ssh的时候,总会遇到这样的问题:输入了用户名以后,等半天才出输入密码的框,很是急人.这是dns反查造成的.解决方法:编辑 /etc/ssh/sshd_conf , 将 #Use ...

  9. POJ 1417 True Liars(种类并查集+dp背包问题)

    题目大意: 一共有p1+p2个人,分成两组,一组p1,一组p2.给出N个条件,格式如下: x y yes表示x和y分到同一组,即同是好人或者同是坏人. x y no表示x和y分到不同组,一个为好人,一 ...

  10. java基础知识回顾之java Thread类学习(八)--java.util.concurrent.locks(JDK1.5)与synchronized异同讲解

    看API文档介绍几个方法:  JDK1.5中提供了多线程的升级解决方案: 特点: 1.将同步synchronized显示的替换成Lock                    2.接口Conditio ...