pig的内置函数小总结(不全)
piggybank里面有很多函数,可以用register和define调用。也可以用java仿照piggybank自行开发。
比如读sequence二进制文件,可以用piggybank里面函数SequenceFileLoader,也可以自行开发函数。
--REGISTER piggybank.jar;
REGISTER wizad-etl-udf-0.1.jar;
--DEFINE SequenceFileLoader org.apache.pig.piggybank.storage.SequenceFileLoader();
DEFINE SequenceFileLoader com.etl.pig.SequenceFileCSVLoader();
--origin_cleaned_data = LOAD '$Cleaned_Log' USING PigStorage(',')
origin_cleaned_data = LOAD '$Cleaned_Log' USING SequenceFileLoader
以下是pig内置函数,可直接使用:
load函数:pigstorage,hbasestorage
TestLoader按行读取text文件,每行做作为一个tuple(是一个chararay类型的字段)
存储函数:PigStorage(hdfs),HBaseStorage(hbase)
内置数学函数:
ABS()绝对值,
TAN()正切
ATAN()反正切
TANH()双曲正切
SQRT()平方根
CBRT()立方根
SIN正弦
SINH双曲正弦
COS()余弦
ACOS()反余弦值
COSH()双曲余弦
EXP():e的幂次方(e为底的指数函数)
LOG()自然对数
LOG10():10为底的对数函数
ROUND:四舍五入取值
CEIL()向上取整
FLOOR(double) 小于等于某表达式的最大整数
注意:{(int)}是包含int类型字段的tupe的bag。
内置聚合函数:
AVG({(int)}):所有值平均值,null忽略。
AVG({(long)}):所有值平均值,null忽略。
AVG({(float)}):所有值平均值,null忽略。
AVG({(double)}):所有值平均值,null忽略。
AVG({(bytearray)}):所有bytearray值转化为double类型后的平均值,null忽略。
COUNT
COUNT_STAR:相当于sql中的count(*)
SUM({(int)}):还有SUM({(float)})。。。
SUM({(bytearray)}):bytearray类型转double后求和,null忽略。
MAX()找最大
MIN()找最小
内置chararray和bytearray的UDF
CONCAT(chararray a, chararray b):连接字符串字段a,b
CONCAT(bytearray a, bytearray b):连接字符串字段a,b
字符查找,返回查找的首位置与末位置。
INDEX_OF(chararray source,chararray search):在source字段中,查找search字段,返回search出现的第一个位置,无则返回-1
如:SPLIT ios INTO ios6 IF (INDEXOF(os_version,'7')!=0),ios7 IF INDEXOF(os_version,'7')==0;
LAST_INDEX_OF(chararray source,chararray search):在source中查找search字段,返回search最后一个字符出现的位置。无则返回-1
LCFIRST(chararray):第一字符转小写
UCFISRT(chararray input):第一个字符转大写
LOWER(chararray):所有字符转小写
UPPER(chararray):所有字符转大写
REGEX_EXTRACT(chararray source, chararray regex, int n):regex是正则表达式,在source中所有匹配regex的字符串(chararray),返回第n个(n从1开始);无则返回null
实例:allAdId =FOREACH allRow GENERATE REGEX_EXTRACT((chararray)$3,'(.*) (.*)',1) AS time,REGEX_EXTRACT((chararray)$0,'(.*)_(.*)',1) AS adn,$6 AS ad_id;
(chararray)REGEX_EXTRACT_ALL(chararray source, chararray regex):在source中找到匹配regex的所有部分作为一个tuple返回(chararray),没有则返回null。
chararry REPLACE(chararry source, chararray toReplace, chararray newValue):在source字段中,用newValue去替换所有的toReplace字段。
long SIZE(chararray input):返回input中字符的个数
(chararray) STRSPLIT(chararray source):将source字符串按空格分隔,返回包含一个字段的tuple,如(aa bb cc)
(chararray) STRSPLIT(chararray source, chararray regex):将source字符串按正则表达式regex分隔,返回包含一个字段的tuple
(chararray) STRSPLIT(chararray source, chararray regex, int maxsplits):将source字符串按正则表达式regex分隔,超过最大分隔数maxsplits后的部分丢弃,只保留前面部分,返回包含一个字段的tuple
SUBSTRING(chararray source,int start, int end):提取source的子串,位置从start到end(不包含end位置上的内容,只留end之前的)。起始位置从0开始,不是从1。输入字符串小于start会报错。
{(chararray)} TOKENIZE(chararray source):按空格分割source字符串成多个部分,分别存入tuple,整体作为一个bag返回。
chararray TRIM(chararray input):去字符串前面和后面的所有空格
还有很多。。
RANDOM():0到1的随机数
判空IsEmpty(bag)和IsEmpty(tuple)
pig的内置函数小总结(不全)的更多相关文章
- python3内置函数大全
由于面试的时候有时候会问到python的几个基本内置函数,由于记不太清,就比较难受,于是呕心沥血总结了一下python3的基本内置函数 Github源码: https://github. ...
- 文成小盆友python-num4 装饰器,内置函数
一 .python 内置函数补充 chr() -- 返回所给参数对应的 ASCII 对应的字符,与ord()相反 # -*- coding:utf-8 -*- # Author:wencheng.z ...
- 文成小盆友python-num3 集合,函数,-- 部分内置函数
本接主要内容: set -- 集合数据类型 函数 自定义函数 部分内置函数 一.set 集合数据类型 set集合,是一个无序且不重复的元素集合 集合基本特性 无序 不重复 创建集合 #!/bin/en ...
- golang拾遗:内置函数len的小知识
len是很常用的内置函数,可以测量字符串.slice.array.channel以及map的长度/元素个数. 不过你真的了解len吗?也许还有一些你不知道的小知识. 我们来看一道GO101的题目,这题 ...
- MYSQL常用内置函数详解说明
函数中可以将字段名当作变量来用,变量的值就是该列对应的所有值:在整理98在线字典数据时(http://zidian.98zw.com/),有这要一个需求,想从多音字duoyinzi字段值提取第一个拼音 ...
- 【原创】Matlab.NET混合编程技巧之找出Matlab内置函数
本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新 Matlab和C#混合编程文章目录 :[目录]Matlab和C#混合编程文章目录 Matlab与.N ...
- Oracle数据库,查询语句、内置函数
一.数据库的查询语句: 1.查询整个表: select * from 表名 例: 2.通过条件查询某一行数据: select * from 表名 where 字段名 例: 3.某一列数据去重查询: s ...
- Python【map、reduce、filter】内置函数使用说明(转载)
转自:http://www.blogjava.net/vagasnail/articles/301140.html?opt=admin 介绍下Python 中 map,reduce,和filter 内 ...
- python基础(内置函数+文件操作+lambda)
一.内置函数 注:查看详细猛击这里 常用内置函数代码说明: # abs绝对值 # i = abs(-123) # print(i) #返回123,绝对值 # #all,循环参数,如果每个元素为真,那么 ...
随机推荐
- eclipse中安装freemarker插件及ftl使用freemarker编辑器
http://www.07net01.com/2015/08/895212.html eclipse中安装freemarker插件及ftl使用freemarker编辑器 在线安装的方法是:Help – ...
- 离线合成联想到的--canvas合成水印
前段时间做了功能模块:用户设置自定义勋章: 实现方式:前端把用户设置的昵称传到后台,后台根据不同用户等级,使用离线合成技术合成不同的勋章返回到前端: 方案算是实现了,但是有点坑就是,后台的离线合成没有 ...
- 使用Fiddler改变线上js文件的引用路径
一般的项目开发都是先在本地环境开发,测试环境中完成测试,最后再提交到线上环境. 但是由于版本构建工具有时出现bug或者一些缓存的因素导致测试环境代码可能和线上不一样,这是多么蓝瘦的事情.此处说的是在原 ...
- 一个使用 Web Components 的音乐播放器: MelodyPlayer
先上效果预览: Web Components 首先,什么是 Web Components ? MDN 给出的定义是: Web Components 是一套不同的技术,允许您创建可重用的定制元素(它们的 ...
- python学习之路前端-jQuery
jQuery简介 JQuery是继prototype之后又一个优秀的Javascript库.它是轻量级的js库 ,它兼容CSS3,还兼容各种浏览器(IE 6.0+, FF1.5+, Safa ...
- Throughtput收集器
介绍 JVM里面的Throughtput收集器是一款关注吞吐量的垃圾收集器.该收集器是唯一一个实现了UseAdaptiveSizePolicy策略的收集器,允许用户通过指定最大暂停时间和垃圾收集时间占 ...
- springMVC源码解析--HandlerMethodArgumentResolverComposite参数解析器集合(二)
上一篇博客springMVC源码分析--HandlerMethodArgumentResolver参数解析器(一)中我们已经介绍了参数解析相关的东西,并且也提到了HandlerMethodArgume ...
- 复杂和遗留的数据库schema
本文作者:苏生米沿 本文地址:http://blog.csdn.net/sushengmiyan/article/details/50414652 In this chapter, we focus ...
- 查看oracle数据库的连接数以及用户 (转:http://blog.itpub.net/24558279/viewspace-752293/)
select2.查询oracle的并发连接数4select3.查看不同用户的连接数6select4.查看所有用户:8select5.查看用户或角色系统权限(直接赋值给用户或角色的系统权限):10sel ...
- springMVC源码分析--访问请求执行ServletInvocableHandlerMethod和InvocableHandlerMethod
在之前一篇博客中springMVC源码分析--RequestMappingHandlerAdapter(五)我们已经简单的介绍到具体请求访问的执行某个Controller中的方法是在RequestMa ...