主要整理了一下,pig里面的一些关键词的含义和用法,pig虽然是一种以数据流处理为核心的框架,但数据库的大部分关键词和操作,在pig里面基本上都能找到对应的函数,非常灵活与简洁,春节前的最后一篇文章了,祝大家春节快乐!
1,保留关键字:
-- A assert, and, any, all, arrange, as, asc, AVG
-- B bag, BinStorage, by, bytearray, BIGINTEGER, BIGDECIMAL
-- C cache, CASE, cat, cd, chararray, cogroup, CONCAT, copyFromLocal, copyToLocal, COUNT, cp, cross
-- D datetime, %declare, %default, define, dense, desc, describe, DIFF, distinct, double, du, dump
-- E e, E, eval, exec, explain
-- F f, F, filter, flatten, float, foreach, full
-- G generate, group
-- H help
-- I if, illustrate, import, inner, input, int, into, is
-- J join
-- K kill
-- L l, L, left, limit, load, long, ls
-- M map, matches, MAX, MIN, mkdir, mv
-- N not, null
-- O onschema, or, order, outer, output
-- P parallel, pig, PigDump, PigStorage, pwd
-- Q quit
-- R register, returns, right, rm, rmf, rollup, run
-- S sample, set, ship, SIZE, split, stderr, stdin, stdout, store, stream, SUM
-- T TextLoader, TOKENIZE, through, tuple
-- U union, using
-- V, W, X, Y, Z Void
2,大小写敏感,别名大小写敏感,关键字大小写都可以 例如,load,group,foreach与LOAD,GROUP,FOREACH是等价的
3,别名定义(首位字符必须为字母,其他位置可以是字母,数字,下划线)
4,集合类型
Bags ,类似table,可以包含多个row
Tuples,类似一行行row,可以有多个field
Fields,具体的数据
5,列名引用,在关系数据库中我们可以使用列名来定位到某一行数据的某个字段的值,在JDBC中,我们既可以通过列名引用,也可以通过索引下标引用,在pig里,也支持这两种引用,下标引用需要加上$0,$1这样的数字标识。
6,数据类型
(基本类型)
Int:有符号32位整数
Long:有符号64位整数
Float:32位单精度
Double:64位单精度
Chararray:Java里面的字符串类型,必须是UTF-8编码
Bytearray:blob字节类型
Boolean:布尔类型
Datetime:日期类型
Biginteger:Java Bigingteger
Bigdecimal:Java BigDecimal
(集合类型)
Tuple:一个有序的字段值集合,类似Java里面的List
Bag:Tuple的集合,类似Java里面的Collection集合超级接口
Map:Java里面的Map,K和V,直接使用#号分开,引用时需要加上#号
7,运算符:
(1) 比较运算符==,!=,<,>,>=,<=
(2) 比较运算符matches,适合字符串,支持正则
(3) 算术运算符+,-,*,/,%,?:,CASE
(4) Null运算符is not null ,is null
(5) 集合类型引用符号tuple(.),map(#)
(6) 关系运算符cogroup,group,join
(7) 函数count_star,sum,min,max,count,avg,concat,size
8, 多数据源join时,别名区分,使用A::name,B::name
9, fallten可以将一个集合类型,或嵌套的类型,给扁平化成一行,看下面例子
B={(a,b,c),(b,b,c)}
FLATTEN(B)之后
a,b,c,b,b,c就成为一行数据了
10,cogroup,多表分组使用
11,cross,两个数据源链接,会产生笛卡尔集
12,distinct,去重,与关系型数据库不同的是,不能对单个field去重,必须是一个row,如果你想对单filed去重,那么就需要先把这个filed,单独提取出来,然后在distinct
13,filter,过滤,类似数据库的where条件,返回一个boolean值。
14,foreach,迭代,抽取一列,或几列的数据,
15,group,分组,类似数据库的group
16,partition by,同等hadoop中Partition组件
17,join,分内外连接,与关系型数据库类似,在hadoop中又分不同的连接方式:复制连接,合并连接,skewed连接等
18,limit,限制结果集返回行数,与mysql中的limit关键字类似
19,load,pig特有关键词,负责从一个指定的路径加载数据源,路径可以使用通配符与hadoop的路径通配符保持一致
20,mapreduce,在pig中,以MR的方式执行一个jar包
21,order by 与关系型数据库的order类似
22,rank,给一个集合,生成序号,类似for循环时的索引自增
23,sample,采样器,能从指定的数据集中随机抽取指定的记录数
24,split,可以按条件拆分一个大的数据集,生成几个不同的小数据集
25,store,pig里面的存储结果的函数,可以将一个集合以指定的存储方式,存储到指定的地方
26,stream,提供了以流的方式可以在pig脚本中,与其他的编程语言交互,比如将pig处理的中间结果,传给python,perl,或者shell等等
27,union,类似数据的union,合并两个结果集为一个结果集
28,register,UDF中,使用此关键词注册我们的组件,可能是一个jar包,也可能是一个python文件
29,define,给UDF的引用定义一个别名
30,import,在一个pig脚本中,使用imprt关键词引入另外一个pig脚本
- 浏览: 1056267 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1441)
- 软件思想&演讲 (9)
- 行业常识 (250)
- 时时疑问 (5)
- java/guava/python/php/ruby/R/scala/groovy (213)
- struct/spring/springmvc (37)
- mybatis/hibernate/JPA (10)
- mysql/oracle/sqlserver/db2/mongdb/redis/neo4j/GreenPlum/Teradata/hsqldb/Derby/sakila (268)
- js/jquery/jqueryUi/jqueryEaseyUI/extjs/angulrJs/react/es6/grunt/zepto/raphael (81)
- ZMQ/RabbitMQ/ActiveMQ/JMS/kafka (17)
- lucene/solr/nuth/elasticsearch/MG4J (167)
- html/css/ionic/nodejs/bootstrap (19)
- Linux/shell/centos (56)
- cvs/svn/git/sourceTree/gradle/ant/maven/mantis/docker/Kubernetes (26)
- sonatype nexus (1)
- tomcat/jetty/netty/jboss (9)
- 工具 (17)
- ETL/SPASS/MATLAB/RapidMiner/weka/kettle/DataX/Kylin (11)
- hadoop/spark/Hbase/Hive/pig/Zookeeper/HAWQ/cloudera/Impala/Oozie (190)
- ios/swift/android (9)
- 机器学习&算法&大数据 (18)
- Mesos是Apache下的开源分布式资源管理框架 (1)
- echarts/d3/highCharts/tableau (1)
- 行业技能图谱 (1)
- 大数据可视化 (2)
- tornado/ansible/twisted (2)
- Nagios/Cacti/Zabbix (0)
- eclipse/intellijIDEA/webstorm (5)
- cvs/svn/git/sourceTree/gradle/jira/bitbucket (4)
- jsp/jsf/flex/ZKoss (0)
- 测试技术 (2)
- splunk/flunm (2)
- 高并发/大数据量 (1)
- freemarker/vector/thymeleaf (1)
- docker/Kubernetes (2)
- dubbo/ESB/dubboX/wso2 (2)
最新评论
发表评论
-
CDH与原生态hadoop之间的区别
2017-07-26 12:45 997需要认识的几个问题 ------------------- ... -
Cloudera的CDH和Apache的Hadoop的区别
2017-07-26 12:49 579目前而言,不收费的Hadoop版本主要有三个(均是国外厂商) ... -
大数据、云计算系统高级架构师课程学习路线图
2017-07-24 17:10 602大数据、云计算系统高级架构师课程学习路线图 大数据 ... -
Oozie简介
2017-07-24 12:17 1072在Hadoop中执行的任务有时候需要把多个Map/Reduc ... -
清理ambari安装的hadoop集群
2017-07-24 11:29 929本文针对redhat或者centos 对于测试集群,如果通 ... -
hawk大数据基础知识总结(2)
2017-05-13 15:13 522hawk 英[hɔ:k] 美[hɔk] n. 鹰; 霍克; ... -
hawk大数据基础知识总结(1)
2017-05-13 14:41 800一、大数据概述 1.1大 ... -
ambari是什么
2017-05-11 19:52 653Apache Ambari是一种基于Web的工具,支持Apa ... -
数据仓库中的Inmon与Kimball架构之争
2017-05-11 13:40 700对于数据仓库体系结构的最佳问题,始终存在许多不同的看法,甚至 ... -
Hive的meta 数据支持以下三种存储方式
2017-05-04 13:48 907测试环境下Hive总出问题 ... -
大数据要学习知识
2017-05-02 17:18 49501 技术层面 1.紧贴 ... -
Spark Streaming简介
2017-05-02 16:28 7521.1 概述 Spark Streaming 是Spark ... -
pentaho套件
2017-04-28 15:52 836有人统计过,在整个数据分析过程里,收集、整理数据的工作大致占全 ... -
Impala:新一代开源大数据分析引擎
2017-04-22 10:48 732大数据处理是云计算中非常重要的问题,自Google公司提出M ... -
Weka是什么
2017-04-10 13:17 1077Weka的全名是怀卡托智 ... -
解密Apache HAWQ ——功能强大的SQL-on-Hadoop引擎
2017-04-10 12:04 845一、HAWQ基本介绍 HAWQ ... -
Kettle的使用
2017-04-06 12:11 601Kettle是一款国外开源 ... -
clouder manager端口7180没有打开为什么
2017-03-27 10:56 1188修改 clouder-manager.repo新建内容我们需要 ... -
Impala与Hive的比较
2017-03-19 13:09 7901. Impala架构 Impala是Clo ... -
Cloudera Manager、CDH零基础入门、线路指导
2017-03-19 12:53 1269问题导读:1.什么是cloudera CM 、CDH?2.C ...
相关推荐
本文旨在深入探讨Apache Pig的一些基本概念和用法,特别关注于新手入门时可能会遇到的概念混淆和实践难点。 #### 二、关键概念解析 ##### 1. 关系(Relation) 在Pig中,**关系**是最基本的数据结构,可以类比为...
在Hadoop平台上,Pig是一种高级脚本语言,用于处理和分析大数据。Pig允许用户执行复杂的...对于希望在Hadoop上进行高效数据处理的开发者和数据分析师来说,Pig提供了一个比传统的MapReduce编程更为简单和直观的方法。
4. 查询优化:Pig使用基于成本的优化策略,包括推导规则、重写规则和基于统计信息的优化。源码中,可以看到如何通过CostBasedOptimizer类实现这些策略。同时,Pig还支持自定义函数(UDF),源码包中的FuncSpec和...
同时,还会涉及到CSS预处理器(如Sass或Less)、前端构建工具(如Webpack或Gulp)的使用方法。 在后端开发方面,PIG可能采用了Java、Go或Node.js等语言,结合Spring Boot、Django、Express等框架构建服务。源码将...
Pig Latin是Pig所使用的声明式数据流语言,它允许用户以一种接近SQL的方式描述数据处理任务。在Pig 0.15源码中,我们可以看到如何将Pig Latin语句转化为可执行的MapReduce任务的过程。这涉及到词法分析、语法分析...
《Pig工具包在Hadoop云计算中的应用与详解》 Pig是Apache Hadoop生态系统中的一个强大工具,专为大规模数据处理而设计。...在云计算时代,掌握Pig的使用无疑能提升个人和团队在大数据领域的竞争力。
### 大数据之pig命令详解 #### 一、Pig简介及与Hive的比较 Pig是一款基于Hadoop的数据处理工具,...通过掌握Pig的基本命令和使用方法,开发者可以更高效地处理大规模数据集,从而更好地支持数据分析和决策制定工作。
《Apache Pig 0.15.0:大数据处理的利器》 Apache Pig 是一个用于大数据分析的平台,它提供了一种高级的...无论是初学者还是经验丰富的专业人士,理解并掌握 Pig-0.15.0 的特性和用法,都将极大地提升数据处理能力。
Pig不仅可以与其他Hadoop组件如HBase、Hive和Spark集成,还可以与其他数据处理工具如Cassandra、MongoDB等配合使用。通过源码,我们可以看到Pig如何与其他大数据技术协同工作,增强数据处理能力。 总之,...
总之,Pig是一种强大的工具,尤其适用于数据分析师和数据工程师在处理大数据时使用。它简化了编写复杂的MapReduce程序的过程,使非专业开发者也能编写出高效的数据处理脚本。而且,随着Pig的不断完善,它在数据处理...
使用`pig.jar`和`pigunit.jar`,开发者可以在本地模式、伪分布式模式或完全分布式模式下运行Pig脚本。首先,通过Java API创建UDF,然后在Pig Latin脚本中调用这些UDF,最后使用Ant编译和打包。在Hadoop集群上部署时...
《Pig语言与Map-Reduce:深入理解pig-0.9.2.tar.gz》 Apache Pig是Hadoop生态系统中的一个高级数据处理工具,它提供了一种面向...通过深入理解和熟练使用Pig,我们可以更高效地挖掘和利用大规模数据,推动业务发展。
《Apache Pig 0.17.0 安装与配置指南》 ...正确安装并配置Pig,结合Pig Latin的使用,可以极大地提高数据处理的效率和便捷性。通过不断的实践和学习,你将能更好地掌握Pig的潜力,为大数据分析带来强大的动力。
同时,官方文档详尽地介绍了 Pig 的使用方法、API 和最佳实践,为初学者和高级用户提供有力的指导。 总的来说,Pig-0.12.0-cdh5.5.0.tar.gz 文件是大数据开发者和分析师在 CDH 平台上进行数据处理的重要资源。通过...
《Pig编程指南》不仅为初学者讲解ApachePig的基础知识,同时也...当读者有大数据处理需求时,《Pig编程指南》提供了如何更高效地使用Pig来完成需求的方法。, 《Pig编程指南》适合各个层次的Pig用户及开发人员阅读使用。
3、增加站内搜索框功能,这样做站的朋友能使用PIGO做站内搜索了,也能卖PIGO搜索里面的广告了……等等。由于工程庞大,下个版本估计会在几个月后完成,大家淡定!最新消息,会公布在PHPig.net。 安装环境1、PHP5.0...
对于想要开始使用Pig的读者,书中的内容会从下载Pig包开始讲起,包括从Apache、Cloudera、Maven仓库等不同途径获取Pig的方法,以及安装和运行Pig的基本步骤。这本书还可能涉及如何设置和配置Pig环境、使用Pig Latin...