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)

时间: 2024-10-07 02:00:53

pig的内置函数小总结(不全)的相关文章

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

本接主要内容: set -- 集合数据类型 函数 自定义函数 部分内置函数 一.set 集合数据类型 set集合,是一个无序且不重复的元素集合 集合基本特性 无序 不重复 创建集合 #!/bin/env python s1 = {"1","2","3","4"} ##或者 s2 = set() set 提供的功能 1 class set(object): 2 """ 3 set() -> n

文成小盆友python-num4 内置函数

一 .python 内置函数补充 chr()  -- 返回所给参数对应的 ASCII 对应的字符,与ord()相反 # -*- coding:utf-8 -*- # Author:wencheng.zhao a = chr(65) print(a) b = chr(66) print(b) ##输出如下: A B Process finished with exit code 0 ord --返回所给的值在ASCII中对应的数字,与chr()作用相反 # -*- coding:utf-8 -*-

Python基础-----内置函数(不全)

#!/usr/bin/env python# -*- coding:utf-8 -*-##########################################################################################1. abs(number)用于返回number的绝对值print(abs(-2)) ##########################################################################

内置函数和匿名函数

1.内置函数 #abs()绝对值函数 # print(abs(-1)) # print(abs(0)) #all()函数如果后面跟的可迭代对象为空,返回true # 如果后面跟的可迭代对象不为空,all会把他变成迭代器,取一个值进行一次bool判断,全为真才返回真 # print(all('')) # print(all((1,'',2))) # print(all((1,"",2,None))) #any函数,正好与all函数相反 # print(any(""))

python函数(6):内置函数和匿名函数

我们学了这么多关于函数的知识基本都是自己定义自己使用,那么我们之前用的一些函数并不是我们自己定义的比如说print(),len(),type()等等,它们是哪来的呢? 一.内置函数 由python内部定义好我们可以直接调用的函数就叫内部函数.python一共给我们68个内置函数: abs() dict() help() min() setattr() all() dir() hex() next() slice() any() divmod() id() object() sorted() as

day23 内置函数,匿名函数,递归

Python之路,Day11 = Python基础11 内置函数divmod(x, y)   # (商, 模)enumerate(可迭代对象)     # (序号,值)eval(字符串) # 把字符串当成命令执行set({1,2,3})   # 可变集合(增删改)frozenset({1,2,3})        # 不可变集合globals()   # 查看全局变量locals()   # 查看局部变量isinstance(3, int)     # 查看3是不是int类型pow(3,3)  

python笔记5:装饰器、内置函数、json

装饰器 装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象. 先看简单例子: def run(): time.sleep(1) print('run....') 现有一个新的需求,希望可以记录下函数的运行时间,需要在代码中计算时间的代码: def run(): start_time = time.time() time.sleep(1) print('run....') end_time = time.time() pr

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

一.数据库的查询语句: 1.查询整个表: select * from 表名 例: 2.通过条件查询某一行数据: select * from 表名 where 字段名 例: 3.某一列数据去重查询: select distinct 字段名 from 表名 例: 4.查询的结果按某个字段升序或倒序排列:  select * from 表名 order by 字段名;                  在字段名的后面加desc为降序顺序排列 例: 5.查询某一列在某个范围内的数据: select *

Python内置函数详解

置顶   内置函数详解 https://docs.python.org/3/library/functions.html?highlight=built#ascii 此文参考了别人整理好的东西(地址:http://www.cnblogs.com/sesshoumaru/p/6140987.html#p1),然后结合自己的理解,写下来,一方面方便自己,让自己好好学习,顺便回忆回忆:另一方面,让喜欢的盆友也参考一下. 经查询,3.6版本总共有68个内置函数,主要分类如下: 数学运算(7个) 类型转换