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的内置函数小总结(不全)的更多相关文章

  1. python3内置函数大全

    由于面试的时候有时候会问到python的几个基本内置函数,由于记不太清,就比较难受,于是呕心沥血总结了一下python3的基本内置函数 Github源码:        https://github. ...

  2. 文成小盆友python-num4 装饰器,内置函数

    一 .python 内置函数补充 chr()  -- 返回所给参数对应的 ASCII 对应的字符,与ord()相反 # -*- coding:utf-8 -*- # Author:wencheng.z ...

  3. 文成小盆友python-num3 集合,函数,-- 部分内置函数

    本接主要内容: set -- 集合数据类型 函数 自定义函数 部分内置函数 一.set 集合数据类型 set集合,是一个无序且不重复的元素集合 集合基本特性 无序 不重复 创建集合 #!/bin/en ...

  4. golang拾遗:内置函数len的小知识

    len是很常用的内置函数,可以测量字符串.slice.array.channel以及map的长度/元素个数. 不过你真的了解len吗?也许还有一些你不知道的小知识. 我们来看一道GO101的题目,这题 ...

  5. MYSQL常用内置函数详解说明

    函数中可以将字段名当作变量来用,变量的值就是该列对应的所有值:在整理98在线字典数据时(http://zidian.98zw.com/),有这要一个需求,想从多音字duoyinzi字段值提取第一个拼音 ...

  6. 【原创】Matlab.NET混合编程技巧之找出Matlab内置函数

                  本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新    Matlab和C#混合编程文章目录 :[目录]Matlab和C#混合编程文章目录 Matlab与.N ...

  7. Oracle数据库,查询语句、内置函数

    一.数据库的查询语句: 1.查询整个表: select * from 表名 例: 2.通过条件查询某一行数据: select * from 表名 where 字段名 例: 3.某一列数据去重查询: s ...

  8. Python【map、reduce、filter】内置函数使用说明(转载)

    转自:http://www.blogjava.net/vagasnail/articles/301140.html?opt=admin 介绍下Python 中 map,reduce,和filter 内 ...

  9. python基础(内置函数+文件操作+lambda)

    一.内置函数 注:查看详细猛击这里 常用内置函数代码说明: # abs绝对值 # i = abs(-123) # print(i) #返回123,绝对值 # #all,循环参数,如果每个元素为真,那么 ...

随机推荐

  1. Java访问修饰符及其访问控制

    java中的访问修饰符,可以看成是人的秘密分享级别.private 个人秘密 ,protected 家族秘密,default(不写修饰符)社区(邻居)秘密(在一个包下的能访问),public 社会秘密 ...

  2. servlet的web-xml配置详解

    <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http:// ...

  3. python webdriver环境搭建

    一.准备安装包 1.下载python 2.下载setuptools 3.下载pip 二.windows环境安装 1.安装python,建议选择python2.7.5版本. 2.安装setuptools ...

  4. JVM体系结构-----深入理解内存结构

    一.概述 内存在计算机中占据着至关重要的地位,任何运行时的程序或者数据都需要依靠内存作为存储介质,否则程序将无法正常运行.与C和C++相比,使用Java语言编写的程序并不需要显示的为每一个对象编写对应 ...

  5. Algorithm in Practice - Sorting and Searching

    Algorithm in Practice Author: Zhong-Liang Xiang Date: Aug. 1st, 2017 不完整, 部分排序和查询算法, 需添加. Prerequisi ...

  6. JQ简单实现无缝滚动

    $(function(){ $("ul li:lt(5)").clone().appendTo("ul"); var $width = $("ul l ...

  7. python学习之路前端-JavaScript

    JavaScript简介 JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本 ...

  8. python3.6 使用 pymysql 连接 Mysql 数据库及 简单的增删改查操作

    1.通过 pip 安装 pymysql 进入 cmd  输入  pip install pymysql   回车等待安装完成: 安装完成后出现如图相关信息,表示安装成功. 2.测试连接 import ...

  9. 硬盘存储计量单位KB、MB、GB大小换算

    一. 预备知识 1. bit与byte 1. bit(简记为 b) 1 bit = 0 or 1 = one binary 2. byte(简记为 B) 1 byte = 8 bits 1字节,8个二 ...

  10. Java内存泄漏分析系列之四:jstack生成的Thread Dump日志线程状态

    原文地址:http://www.javatang.com Thread Dump日志的线程信息 以下面的日志为例: "resin-22129" daemon prio=10 tid ...