pig的内置函数小总结(不全),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。输入字符串小于start会报错。


{(chararray)} TOKENIZE(chararray source):按空格分割source字符串成多个部分,分别存入tuple,整体作为一个bag返回。


chararray TRIM(chararray input):去字符串前面和后面的所有空格


还有很多。。
RANDOM():0到1的随机数

判空IsEmpty(bag)和IsEmpty(tuple)





函数总结

加油!!
定义与定义式:
自变量x和因变量y有如下关系:
y=kx+b(k,b为常数,k≠0)
则称y是x的一次函数。
特别地,当b=0时,y是x的正比例函数。

II、一次函数的性质:
y的变化值与对应的x的变化值成正比例,比值为k
即 △y/△x=k

III、一次函数的图象及性质:
1. 作法与图形:通过如下3个步骤(1)列表;(2)描点;(3)连线,可以作出一次函数的图象——

一条直线。因此,作一次函数的图象只需知道2点,并连成直线即可。
2. 性质:在一次函数上的任意一点P(x,y),都满足等式:y=kx+b。
3. k,b与函数图象所在象限。
当k>0时,直线必通过一、三象限,y随x的增大而增大;
当k<0时,直线必通过二、四象限,y随x的增大而减小。
当b>0时,直线必通过一、二象限;当b<0时,直线必通过三、四象限。
特别地,当b=O时,直线通过原点O(0,0)表示的是正比例函数的图象。
这时,当k>0时,直线只通过一、三象限;当k<0时,直线只通过二、四象限。

IV、确定一次函数的表达式:
已知点A(x1,y1);B(x2,y2),请确定过点A、B的一次函数的表达式。
(1)设一次函数的表达式(也叫解析式)为y=kx+b。
(2)因为在一次函数上的任意一点P(x,y),都满足等式y=kx+b。所以可以列出2个方程:
y1=kx1+b① 和 y2=kx2+b②。
(3)解这个二元一次方程,得到k,b的值。
(4)最后得到一次函数的表达式。

V、一次函数在生活中的应用
1.当时间t一定,距离s是速度v的一次函数。s=vt。
2.当水池抽水速度f一定,水池中水量g是抽水时间t的一次函数。设水池中原有水量S。g=S-ft。

一次函数与二元一次方程的关系

1.(1)以二元一次方程组ax+by=c的解为坐标的点组成的图象与一次函数
y=-a/bx+c/d的图象相同.
(2)二元一次方程组{a1x+b1y=c1,a2x+b2y=c2的解可以看作是两个一次函数
y=-a1/b1x+c1/d1和y=-a2/b2x+c2/d2的图象的交点.
方法小结:
把方程组中的两个二元一次方程改写成一次函数的形式,然后作出它们的图象,找出两图象的交点,即可知

方程组的解.

2.作出一次函数的图象,找出两图象的交点,即可知方程组的解.
 

初中数学函数部分总结

正比例函数的概念
一般地,两个变量x,y之间的关系式可以表示成形如y=kx(k为常数,且k≠0)的函数,那么y就叫做x的正比例函数。
正比例函数属于一次函数,但一次函数却不一定是正比例函数。正比例函数是一次函数的特殊形式,即一次函数 y=kx+b 中,若b=0,即所谓“y轴上的截距”为零,则为正比例函数。正比例函数的关系式表示为:y=kx(k为比例系数)
当K>0时(一三象限),K越大,图像与y轴的距离越近。函数值y随着自变量x的增大而增大.
当K<0时(二四象限),k越小,图像与y轴的距离越近。自变量x的值增大时,y的值则逐渐减小.
[编辑本段]正比例函数的性质
1.定义域:R(实数集)
2.值域:R(实数集)
3.奇偶性:奇函数
4.单调性:当k>0时,图象位于第一、三象限,y随x的增大而增大(单调递增);当k<0时,图象位于第二、四象限,y随x的增大而减小(单调递减)。
5.周期性:不是周期函数。
6.对称轴:直线,无对称轴。
[编辑本段]正比例函数解析式的求法
设该正比例函数的解析式为 y=kx(k≠0),将已知点的坐标带入上式得到k,即可求出正比例函数的解析式。
另外,若求正比例函数与其它函数的交点坐标,则将两个已知的函数解析式联立成方程组,求出其x,y值即可。
[编辑本段]正比例函数的图像
正比例函数的图像是经过坐标原点(0,0)和定点(x,kx)两点的一条直线,它的斜率是k,横、纵截距都为0。
[编辑本段]正比例函数图像的作法
1.在x允许的范围内取一个值,根据解析式求出y值
2.根据第一步求的x、y的值描出点
3.做过第二步描出的点和原点的直线
[编辑本段]正比例函数的应用
正比例函数在线性规划问题中体现的力量也是无穷的。
比如斜率问题就取决于K值,当K越大,则该函数图像与x轴的夹角越大,反之亦然
还有,y=kx 是 y=k/x 的图像的对称轴。
①正比例:两种相关联的量,一种量变化,另一种量也随着变化,如果这两种量相对应的两个数的比值(也就是商)一定,这两种量就叫做成正比例的量,它们的关系叫做成正比例关系. ①用字母表示:如果用字母x和y表示两种相关联的量,用k表示它们的比值,(一定)正比例关系可以用以下关系式表示:
②正比例关系两种相关联的量的变化规律:对于比值为正数的,即y=kx(k>0),此时的y与x,同时扩大,同时缩小,比值不变.例如:汽车每小时行驶的速度一定,所行的路程和所用的时间是否成正比例?
以上各种商都是一定的,那么被除数和除数. 所表示的两种相关联的量,成正比例关系. 注意:在判断两种相关联的量是否成正比例时应注意这两种相关联的量,虽然也是一种量,随着另一种的变化而变化,但它们相对应的两个数的比值不一定,它们就不能成正比例. 例如:一个人的年龄和它的体重,就不能成正比例关系,正方形的边长和它的面积也不成正比例关系。
[编辑本段]反比例函数的定义
一般地,如果两个变量x、y之间的关系可以表示成y=k/x (k为常数,k≠0)的形式,那么称y是x的反比例函数。
因为y=k/x是一个分式,所以自变量X的取值范围是X≠0。而y=k/x有时也被写成xy=k或y=kx-¹。
[编辑本段]反比例函数表达式
y=k/x 其中X是自变量,Y是X的函数
y=k/x=k·1/x
xy=k
y=k·x^-1
y=k\x(k为常数(k≠0),x......余下全文>>
 

相关内容