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. Sybase ASE报错:server Error: 8242, Severity: 16, State: 1

    昨天上午,同事反映某系统在执行存储过程的过程中报错了,报错的信息异常如下: 05:00000:00009:2014/06/09 15:45:30.34 server Error: 8242, Seve ...

  2. Java的哪些事

    Java的哪些事--------------------------------------------------Java学习分2个方面: Java语法与Java类库 Java: A simple, ...

  3. entityframwork

    entityframwork映射部分: public class NorthwindContext : DbContext { public DbSet<CATEGORIES> Categ ...

  4. Oracle 存储过程实例2

    --创建存储过程 CREATE OR REPLACE PROCEDURE xxxxxxxxxxx_p ( --参数IN表示输入参数,OUT表示输入参数,类型可以使用任意Oracle中的合法类型. is ...

  5. android 使某个控件获取焦点

    比如让某个edittext获取焦点,可以调用edittext.requestfocuse()的方法

  6. python logging TimedRotatingFileHandler 作用

    max backup count这样的参数,即打印的日志文件数量超过这个阈值,发生rotate,从最老的文件开始清理 未亲测.

  7. 【BZOJ】【2819】NIM

    这题……咋说捏,其实是一道披着博弈论外衣的树上操作问题…… 随便用dfs序或者树链剖分转成序列,然后查询路径上的所有点的NIM和(异或和)就行了,毕竟除了是在树上以外,就是裸的NIM问题. 树链剖分: ...

  8. 基于密度的聚类之Dbscan算法

    一.算法概述 DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一个比较有代表性的基于密度的聚类算法.与划分和层次 ...

  9. 奇异值分解(We Recommend a Singular Value Decomposition)

    奇异值分解(We Recommend a Singular Value Decomposition) 原文作者:David Austin原文链接: http://www.ams.org/samplin ...

  10. 【锋利的JQuery-学习笔记】广告栏

    效果图: html: <div id="jnImageroll"> <a href="#nogo" id="JS_imgWrap&q ...