Hive函数大全(二)

字符串函数

字符串长度函数:length

语法: length(string A)

返回值: int

说明:返回字符串A的长度

举例:

hive> select length(‘abcedfg’) from dual;

7

字符串反转函数:reverse

语法: reverse(string A)

返回值: string

说明:返回字符串A的反转结果

举例:

hive> select reverse(‘abcedfg’) from dual;

gfdecba

字符串连接函数:concat

语法: concat(string A, string B…)

返回值: string

说明:返回输入字符串连接后的结果,支持任意个输入字符串

举例:

hive> select concat(‘abc’,'def’,'gh’) from dual;

abcdefgh

带分隔符字符串连接函数:concat_ws

语法: concat_ws(string SEP, string A, string B…)

返回值: string

说明:返回输入字符串连接后的结果,SEP表示各个字符串间的分隔符

举例:

hive> select concat_ws(‘,’,'abc’,'def’,'gh’) from dual;

abc,def,gh

字符串截取函数:substr,substring

语法: substr(string A, int start),substring(string A, int start)

返回值: string

说明:返回字符串A从start位置到结尾的字符串

举例:

hive> select substr(‘abcde’,3) from dual;

cde

hive> select substring(‘abcde’,3) from dual;

cde

hive>  select substr(‘abcde’,-1) from dual;  (和ORACLE相同)

e

字符串截取函数:substr,substring

语法: substr(string A, int start, int len),substring(string A, int start, int len)

返回值: string

说明:返回字符串A从start位置开始,长度为len的字符串

举例:

hive> select substr(‘abcde’,3,2) from dual;

cd

hive> select substring(‘abcde’,3,2) from dual;

cd

hive>select substring(‘abcde’,-2,2) from dual;

de

字符串转大写函数:upper,ucase

语法: upper(string A) ucase(string A)

返回值: string

说明:返回字符串A的大写格式

举例:

hive> select upper(‘abSEd’) from dual;

ABSED

hive> select ucase(‘abSEd’) from dual;

ABSED

字符串转小写函数:lower,lcase

语法: lower(string A) lcase(string A)

返回值: string

说明:返回字符串A的小写格式

举例:

hive> select lower(‘abSEd’) from dual;

absed

hive> select lcase(‘abSEd’) from dual;

absed

去空格函数:trim

语法: trim(string A)

返回值: string

说明:去除字符串两边的空格

举例:

hive> select trim(‘ abc ‘) from dual;

abc

左边去空格函数:ltrim

语法: ltrim(string A)

返回值: string

说明:去除字符串左边的空格

举例:

hive> select ltrim(‘ abc ‘) from dual;

abc

右边去空格函数:rtrim

语法: rtrim(string A)

返回值: string

说明:去除字符串右边的空格

举例:

hive> select rtrim(‘ abc ‘) from dual;

abc

正则表达式替换函数:regexp_replace

语法: regexp_replace(string A, string B, string C)

返回值: string

说明:将字符串A中的符合java正则表达式B的部分替换为C。注意,在有些情况下要使用转义字符

举例:

hive> select regexp_replace(‘foobar’, ‘oo|ar’, ”) from dual;

fb

正则表达式解析函数:regexp_extract

语法: regexp_extract(string subject, string pattern, int index)

返回值: string

说明:将字符串subject按照pattern正则表达式的规则拆分,返回index指定的字符。注意,在有些情况下要使用转义字符

举例:

hive> select regexp_extract(‘foothebar’, ‘foo(.*?)(bar)’, 1) from dual;

the

hive> select regexp_extract(‘foothebar’, ‘foo(.*?)(bar)’, 2) from dual;

bar

hive> select regexp_extract(‘foothebar’, ‘foo(.*?)(bar)’, 0) from dual;

foothebar

URL解析函数:parse_url

语法: parse_url(string urlString, string partToExtract [, string keyToExtract])

返回值: string

说明:返回URL中指定的部分。partToExtract的有效值为:HOST, PATH, QUERY, REF, PROTOCOL, AUTHORITY, FILE, and USERINFO.

举例:

hive> select parse_url(‘http://facebook.com/path1/p.php?k1=v1&k2=v2#Ref1′, ‘HOST’) from dual;

facebook.com

hive> select parse_url(‘http://facebook.com/path1/p.php?k1=v1&k2=v2#Ref1′, ‘QUERY’, ‘k1′) from dual;

v1

json解析函数:get_json_object

语法: get_json_object(string json_string, string path)

返回值: string

说明:解析json的字符串json_string,返回path指定的内容。如果输入的json字符串无效,那么返回NULL。

举例:

hive> select  get_json_object(‘{“store”:

>   {“fruit”:\[{"weight":8,"type":"apple"},{"weight":9,"type":"pear"}],

>    “bicycle”:{“price”:19.95,”color”:”red”}

>   },

>  “email”:”amy@only_for_json_udf_test.net”,

>  “owner”:”amy”

> }

> ‘,’$.owner’) from dual;

amy

空格字符串函数:space

语法: space(int n)

返回值: string

说明:返回长度为n的字符串

举例:

hive> select space(10) from dual;

hive> select length(space(10)) from dual;

10

重复字符串函数:repeat

语法: repeat(string str, int n)

返回值: string

说明:返回重复n次后的str字符串

举例:

hive> select repeat(‘abc’,5) from dual;

abcabcabcabcabc

首字符ascii函数:ascii

语法: ascii(string str)

返回值: int

说明:返回字符串str第一个字符的ascii码

举例:

hive> select ascii(‘abcde’) from dual;

97

左补足函数:lpad

语法: lpad(string str, int len, string pad)

返回值: string

说明:将str进行用pad进行左补足到len位

举例:

hive> select lpad(‘abc’,10,’td’) from dual;

tdtdtdtabc

与GP,ORACLE不同,pad 不能默认

右补足函数:rpad

语法: rpad(string str, int len, string pad)

返回值: string

说明:将str进行用pad进行右补足到len位

举例:

hive> select rpad(‘abc’,10,’td’) from dual;

abctdtdtdt

分割字符串函数: split

语法:  split(string str, string pat)

返回值:  array

说明: 按照pat字符串分割str,会返回分割后的字符串数组

举例:

hive> select split(‘abtcdtef’,'t’) from dual;

["ab","cd","ef"]

集合查找函数: find_in_set

语法: find_in_set(string str, string strList)

返回值: int

说明: 返回str在strlist第一次出现的位置,strlist是用逗号分割的字符串。如果没有找该str字符,则返回0(只能是逗号分隔,不然返回0)

举例:

hive> select find_in_set(‘ab’,'ef,ab,de’) from dual;

2

hive> select find_in_set(‘at’,'ef,ab,de’) from dual;

0

日期函数

日期函数UNIX时间戳转日期函数: from_unixtime语法:from_unixtime(bigint unixtime[, string format]) 
返回值: string
说明: 转化UNIX时间戳(从1970-01-01 00:00:00 UTC到指定时间的秒数)到当前时区的时间格式
举例:
hive> select from_unixtime(1323308943,'yyyyMMdd') from dual;
20111208

获取当前UNIX时间戳函数: unix_timestamp语法:   unix_timestamp() 
返回值:   bigint
说明: 获得当前时区的UNIX时间戳
举例:
hive>   select unix_timestamp() from dual;
1323309615

日期转UNIX时间戳函数: unix_timestamp语法:unix_timestamp(string date) 
返回值:   bigint
说明: 转换格式为“yyyy-MM-dd HH:mm:ss“的日期到UNIX时间戳。如果转化失败,则返回0。
举例:
hive>   select unix_timestamp('2011-12-07 13:01:03') from dual;
1323234063

指定格式日期转UNIX时间戳函数: unix_timestamp语法:   unix_timestamp(string date, string pattern) 
返回值:   bigint
说明: 转换pattern格式的日期到UNIX时间戳。如果转化失败,则返回0。
举例:
hive>   select unix_timestamp('20111207 13:01:03','yyyyMMdd HH:mm:ss') from dual;
1323234063

日期时间转日期函数: to_date语法:   to_date(string timestamp) 
返回值:   string
说明: 返回日期时间字段中的日期部分。
举例:
hive>   select to_date('2011-12-08 10:03:01') from dual;
2011-12-08

日期转年函数: year语法:   year(string date) 
返回值: int
说明: 返回日期中的年。
举例:
hive>   select year('2011-12-08 10:03:01') from dual;
2011
hive>   select year('2012-12-08') from dual;
2012

日期转月函数: month语法: month   (string date) 
返回值: int
说明: 返回日期中的月份。
举例:
hive>   select month('2011-12-08 10:03:01') from dual;
12
hive>   select month('2011-08-08') from dual;
8

日期转天函数: day语法: day   (string date) 
返回值: int
说明: 返回日期中的天。
举例:
hive>   select day('2011-12-08 10:03:01') from dual;
8
hive>   select day('2011-12-24') from dual;
24

日期转小时函数: hour语法: hour   (string date) 
返回值: int
说明: 返回日期中的小时。
举例:
hive>   select hour('2011-12-08 10:03:01') from dual;
10

日期转分钟函数: minute语法: minute   (string date) 
返回值: int
说明: 返回日期中的分钟。
举例:
hive>   select minute('2011-12-08 10:03:01') from dual;
3

日期转秒函数: second语法: second   (string date) 
返回值: int
说明: 返回日期中的秒。
举例:
hive>   select second('2011-12-08 10:03:01') from dual;
1

日期转周函数: weekofyear语法:   weekofyear (string date) 
返回值: int
说明: 返回日期在当前的周数。
举例:
hive>   select weekofyear('2011-12-08 10:03:01') from dual;
49

日期比较函数: datediff语法:   datediff(string enddate, string startdate) 
返回值: int
说明: 返回结束日期减去开始日期的天数。
举例:
hive>   select datediff('2012-12-08','2012-05-09') from dual;
213

日期增加函数: date_add语法:   date_add(string startdate, int days) 
返回值: string
说明: 返回开始日期startdate增加days天后的日期。
举例:
hive>   select date_add('2012-12-08',10) from dual;
2012-12-18

日期减少函数: date_sub语法:   date_sub (string startdate, int days) 
返回值: string
说明: 返回开始日期startdate减少days天后的日期。
举例:
hive>   select date_sub('2012-12-08',10) from dual;
2012-11-28

 

原文见:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF

1.内置运算符
1.1关系运算符

运算符

类型

说明

A = B

所有原始类型

如果A与B相等,返回TRUE,否则返回FALSE

A == B

失败,因为无效的语法。 SQL使用”=”,不使用”==”。

A <> B

所有原始类型

如果A不等于B返回TRUE,否则返回FALSE。如果A或B值为”NULL”,结果返回”NULL”。

A < B

所有原始类型

如果A小于B返回TRUE,否则返回FALSE。如果A或B值为”NULL”,结果返回”NULL”。

A <= B

所有原始类型

如果A小于等于B返回TRUE,否则返回FALSE。如果A或B值为”NULL”,结果返回”NULL”。

A > B

所有原始类型

如果A大于B返回TRUE,否则返回FALSE。如果A或B值为”NULL”,结果返回”NULL”。

A >= B

所有原始类型

如果A大于等于B返回TRUE,否则返回FALSE。如果A或B值为”NULL”,结果返回”NULL”。

A IS NULL

所有类型

如果A值为”NULL”,返回TRUE,否则返回FALSE

A IS NOT NULL

所有类型

如果A值不为”NULL”,返回TRUE,否则返回FALSE

A LIKE B

字符串

如果A或B值为”NULL”,结果返回”NULL”。字符串A与B通过sql进行匹配,如果相符返回TRUE,不符返回FALSE。B字符串中 的”_”代表任一字符,”%”则代表多个任意字符。例如: (‘foobar’ like ‘foo’)返回FALSE,( ‘foobar’ like ‘foo_ _ _’或者 ‘foobar’ like ‘foo%’)则返回TURE

A RLIKE B

字符串

如果A或B值为”NULL”,结果返回”NULL”。字符串A与B通过java进行匹配,如果相符返回TRUE,不符返回FALSE。例如:( ‘foobar’ rlike ‘foo’)返回FALSE,(’foobar’ rlike ‘^f.*r$’ )返回TRUE。

A REGEXP B

字符串

与RLIKE相同。

1.2算术运算符

运算符

类型

说明

A + B

所有数字类型

A和B相加。结果的与操作数值有共同类型。例如每一个整数是一个浮点数,浮点数包含整数。所以,一个浮点数和一个整数相加结果也是一个浮点数。

A – B

所有数字类型

A和B相减。结果的与操作数值有共同类型。

A * B

所有数字类型

A和B相乘,结果的与操作数值有共同类型。需要说明的是,如果乘法造成溢出,将选择更高的类型。

A / B

所有数字类型

A和B相除,结果是一个double(双精度)类型的结果。

A % B

所有数字类型

A除以B余数与操作数值有共同类型。

A & B

所有数字类型

运算符查看两个参数的二进制表示法的值,并执行按位”与”操作。两个表达式的一位均为1时,则结果的该位为 1。否则,结果的该位为 0。

A|B

所有数字类型 

运算符查看两个参数的二进制表示法的值,并执行按位”或”操作。只要任一表达式的一位为 1,则结果的该位为 1。否则,结果的该位为 0。 

A ^ B

所有数字类型

运算符查看两个参数的二进制表示法的值,并执行按位”异或”操作。当且仅当只有一个表达式的某位上为 1 时,结果的该位才为 1。否则结果的该位为 0。

~A

所有数字类型

对一个表达式执行按位”非”(取反)。

1.3逻辑运算符

运算符

类型

说明

A AND B

布尔值

A和B同时正确时,返回TRUE,否则FALSE。如果A或B值为NULL,返回NULL。

A && B

布尔值

与”A AND B”相同

A OR B

布尔值

A或B正确,或两者同时正确返返回TRUE,否则FALSE。如果A和B值同时为NULL,返回NULL。

A | B

布尔值

与”A OR B”相同

NOT A

布尔值

如果A为NULL或错误的时候返回TURE,否则返回FALSE。

! A

布尔值

与”NOT A”相同

1.4复杂类型函数

函数

类型

说明

map

(key1, value1, key2, value2, …)

通过指定的键/值对,创建一个map。

struct

(val1, val2, val3, …)

通过指定的字段值,创建一个结构。结构字段名称将COL1,COL2,…

array

(val1, val2, …)

通过指定的元素,创建一个数组。

1.5对复杂类型函数操作

函数

类型

说明

A[n]

A是一个数组,n为int型

返回数组A的第n个元素,第一个元素的索引为0。如果A数组为['foo','bar'],则A[0]返回’foo’和A[1]返回”bar”。

M[key]

M是Map<K, V>,关键K型

返回关键值对应的值,例如mapM为 \{‘f’ -> ‘foo’, ‘b’ -> ‘bar’, ‘all’ -> ‘foobar’\},则M['all'] 返回’foobar’。

S.x

S为struct

返回结构x字符串在结构S中的存储位置。如 foobar \{int foo, int bar\} foobar.foo的领域中存储的整数。

2.内置函数
2.1数学函数

返回类型

函数

说明

BIGINT

round(double a)

四舍五入

DOUBLE

round(double a, int d)

小数部分d位之后数字四舍五入,例如round(21.263,2),返回21.26

BIGINT

floor(double a)

对给定数据进行向下舍入最接近的整数。例如floor(21.2),返回21。

BIGINT

ceil(double a), ceiling(double a)

将参数向上舍入为最接近的整数。例如ceil(21.2),返回23.

double

rand(), rand(int seed)

返回大于或等于0且小于1的平均分布随机数(依重新计算而变)

double

exp(double a)

返回e的n次方

double

ln(double a)

返回给定数值的自然对数

double

log10(double a)

返回给定数值的以10为底自然对数

double

log2(double a)

返回给定数值的以2为底自然对数

double

log(double base, double a)

返回给定底数及指数返回自然对数

double

pow(double a, double p) power(double a, double p)

返回某数的乘幂

double

sqrt(double a)

返回数值的平方根

string

bin(BIGINT a)

返回二进制格式,参考:http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_hex

string

hex(BIGINT a) hex(string a)

将整数或字符转换为十六进制格式。参考:http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_hex

string

unhex(string a)

十六进制字符转换由数字表示的字符。

string

conv(BIGINT num, int from_base, int to_base)

将指定数值,由原来的度量体系转换为指定的试题体系。例如CONV(‘a’,16,2),返回。参考:’1010′ http://dev.mysql.com/doc/refman/5.0/en/mathematical-functions.html#function_conv

double

abs(double a)

取绝对值

int double

pmod(int a, int b) pmod(double a, double b)

返回a除b的余数的绝对值

double

sin(double a)

返回给定角度的正弦值

double

asin(double a)

返回x的反正弦,即是X。如果X是在-1到1的正弦值,返回NULL。

double

cos(double a)

返回余弦

double

acos(double a)

返回X的反余弦,即余弦是X,,如果-1<= A <= 1,否则返回null.

int double

positive(int a) positive(double a)

返回A的值,例如positive(2),返回2。

int double

negative(int a) negative(double a)

返回A的相反数,例如negative(2),返回-2。

2.2收集函数

返回类型

函数

说明

int

size(Map<K.V>)

返回的map类型的元素的数量

int

size(Array<T>)

返回数组类型的元素数量

2.3类型转换函数

返回类型

函数

说明

指定 “type”

cast(expr as <type>)

类型转换。例如将字符”1″转换为整数:cast(’1′ as bigint),如果转换失败返回NULL。

2.4日期函数

返回类型

函数

说明

string

from_unixtime(bigint unixtime[, string format])

UNIX_TIMESTAMP参数表示返回一个值’YYYY- MM – DD HH:MM:SS’或YYYYMMDDHHMMSS.uuuuuu格式,这取决于是否是在一个字符串或数字语境中使用的功能。该值表示在当前的时区。

bigint

unix_timestamp()

如果不带参数的调用,返回一个Unix时间戳(从’1970- 01 – 0100:00:00′到现在的UTC秒数)为无符号整数。

bigint

unix_timestamp(string date)

指定日期参数调用UNIX_TIMESTAMP(),它返回参数值’1970- 01 – 0100:00:00′到指定日期的秒数。

bigint

unix_timestamp(string date, string pattern)

指定时间输入格式,返回到1970年秒数:unix_timestamp(’2009-03-20′, ‘yyyy-MM-dd’) = 1237532400 参考:http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html

string

to_date(string timestamp)

返回时间中的年月日: to_date(“1970-01-01 00:00:00″) = “1970-01-01″

string

to_dates(string date)

给定一个日期date,返回一个天数(0年以来的天数)

int

year(string date)

返回指定时间的年份,范围在1000到9999,或为”零”日期的0。

int

month(string date)

返回指定时间的月份,范围为1至12月,或0一个月的一部分,如’0000-00-00′或’2008-00-00′的日期。

int

day(string date) dayofmonth(date)

返回指定时间的日期

int

hour(string date)

返回指定时间的小时,范围为0到23。

int

minute(string date)

返回指定时间的分钟,范围为0到59。

int

second(string date)

返回指定时间的秒,范围为0到59。

int

weekofyear(string date)

返回指定日期所在一年中的星期号,范围为0到53。

int

datediff(string enddate, string startdate)

两个时间参数的日期之差。

int

date_add(string startdate, int days)

给定时间,在此基础上加上指定的时间段。

int

date_sub(string startdate, int days)

给定时间,在此基础上减去指定的时间段。

2.5条件函数

返回类型

函数

说明

T

if(boolean testCondition, T valueTrue, T valueFalseOrNull)

判断是否满足条件,如果满足返回一个值,如果不满足则返回另一个值。

T

COALESCE(T v1, T v2, …)

返回一组数据中,第一个不为NULL的值,如果均为NULL,返回NULL。

T

CASE a WHEN b THEN c [WHEN d THEN e]* [ELSE f] END

当a=b时,返回c;当a=d时,返回e,否则返回f。

T

CASE WHEN a THEN b [WHEN c THEN d]* [ELSE e] END

当值为a时返回b,当值为c时返回d。否则返回e。

2.6字符函数

返回类型

函数

说明

int

length(string A)

返回字符串的长度

string

reverse(string A)

返回倒序字符串

string

concat(string A, string B…)

连接多个字符串,合并为一个字符串,可以接受任意数量的输入字符串

string

concat_ws(string SEP, string A, string B…)

链接多个字符串,字符串之间以指定的分隔符分开。

string

substr(string A, int start) substring(string A, int start)

从文本字符串中指定的起始位置后的字符。

string

substr(string A, int start, int len) substring(string A, int start, int len)

从文本字符串中指定的位置指定长度的字符。

string

upper(string A) ucase(string A)

将文本字符串转换成字母全部大写形式

string

lower(string A) lcase(string A)

将文本字符串转换成字母全部小写形式

string

trim(string A)

删除字符串两端的空格,字符之间的空格保留

string

ltrim(string A)

删除字符串左边的空格,其他的空格保留

string

rtrim(string A)

删除字符串右边的空格,其他的空格保留

string

regexp_replace(string A, string B, string C)

字符串A中的B字符被C字符替代

string

regexp_extract(string subject, string pattern, int index)

通过下标返回正则表达式指定的部分。regexp_extract(‘foothebar’, ‘foo(.*?)(bar)’, 2) returns ‘bar.’

string

parse_url(string urlString, string partToExtract [, string keyToExtract])

返回URL指定的部分。parse_url(‘http://facebook.com/path1/p.php?k1=v1&k2=v2#Ref1′, ‘HOST’) 返回:’facebook.com’

string

get_json_object(string json_string, string path)

select a.timestamp, get_json_object(a.appevents, ‘$.eventid’), get_json_object(a.appenvets, ‘$.eventname’) from log a;

string

space(int n)

返回指定数量的空格

string

repeat(string str, int n)

重复N次字符串

int

ascii(string str)

返回字符串中首字符的数字值

string

lpad(string str, int len, string pad)

返回指定长度的字符串,给定字符串长度小于指定长度时,由指定字符从左侧填补。

string

rpad(string str, int len, string pad)

返回指定长度的字符串,给定字符串长度小于指定长度时,由指定字符从右侧填补。

array

split(string str, string pat)

将字符串转换为数组。

int

find_in_set(string str, string strList)

返回字符串str第一次在strlist出现的位置。如果任一参数为NULL,返回NULL;如果第一个参数包含逗号,返回0。

array<array<string>>

sentences(string str, string lang, string locale)

将字符串中内容按语句分组,每个单词间以逗号分隔,最后返回数组。 例如sentences(‘Hello there! How are you?’) 返回:( (“Hello”, “there”), (“How”, “are”, “you”) )

array<struct<string,double>>

ngrams(array<array<string>>, int N, int K, int pf)

SELECT ngrams(sentences(lower(tweet)), 2, 100 [, 1000]) FROM twitter;

array<struct<string,double>>

context_ngrams(array<array<string>>, array<string>, int K, int pf)

SELECT context_ngrams(sentences(lower(tweet)), array(null,null), 100, [, 1000]) FROM twitter;

3.内置的聚合函数(UDAF

返回类型

函数

说明

bigint

count(*) , count(expr), count(DISTINCT expr[, expr_., expr_.])

返回记录条数。

double

sum(col), sum(DISTINCT col)

求和

double

avg(col), avg(DISTINCT col)

求平均值

double

min(col)

返回指定列中最小值

double

max(col)

返回指定列中最大值

double

var_pop(col)

返回指定列的方差

double

var_samp(col)

返回指定列的样本方差

double

stddev_pop(col)

返回指定列的偏差

double

stddev_samp(col)

返回指定列的样本偏差

double

covar_pop(col1, col2)

两列数值协方差

double

covar_samp(col1, col2)

两列数值样本协方差

double

corr(col1, col2)

返回两列数值的相关系数

double

percentile(col, p)

返回数值区域的百分比数值点。0<=P<=1,否则返回NULL,不支持浮点型数值。

array<double>

percentile(col, array(p~1,,\ [, p,,2,,]…))

返回数值区域的一组百分比值分别对应的数值点。0<=P<=1,否则返回NULL,不支持浮点型数值。

double

percentile_approx(col, p[, B])

Returns an approximate p^th^ percentile of a numeric column (including floating point types) in the group. The B parameter controls approximation accuracy at the cost of memory. Higher values yield better approximations, and the default is 10,000. When the number of distinct values in col is smaller than B, this gives an exact percentile value.

array<double>

percentile_approx(col, array(p~1,, [, p,,2_]…) [, B])

Same as above, but accepts and returns an array of percentile values instead of a single one.

array<struct\{‘x’,'y’\}>

histogram_numeric(col, b)

Computes a histogram of a numeric column in the group using b non-uniformly spaced bins. The output is an array of size b of double-valued (x,y) coordinates that represent the bin centers and heights

array

collect_set(col)

返回无重复记录

4.内置表生成函数(UDTF

返回类型

函数

说明

数组

explode(array<TYPE> a)

数组一条记录中有多个参数,将参数拆分,每个参数生成一列。

 

json_tuple

get_json_object语句:select a.timestamp, get_json_object(a.appevents, ‘$.eventid’), get_json_object(a.appenvets, ‘$.eventname’) from log a; json_tuple语句: select a.timestamp, b.* from log a lateral view json_tuple(a.appevent, ‘eventid’, ‘eventname’) b as f1, f2

explode示例:

数组

SQL

返回

myCol 
[1,2] 
[3,4]

SELECT explode(myCol) AS myNewCol FROM myTable

myNewCol



4

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、关系运算: 4 1. 等值比较: = 4 2. 不等值比较: 4 3. 小于比较: < 4 4. 小于等于比较: 5 6. 大于等于比较: >= 5 7. 空值判断: IS NULL 5 8. 非空判断: IS NOT NULL 6 9. LIKE比较: LIKE 6 10. JAVA的LIKE操作: RLIKE 6 11. REGEXP操作: REGEXP 7 、数学运算: 7 1. 加法操作: + 7 2. 减法操作: - 7 3. 乘法操作: * 8 4. 除法操作: / 8 5. 取余操作: % 8 6. 位与操作: & 9 7. 位或操作: | 9 8. 位异或操作: ^ 9 9.位取反操作: ~ 10 三、逻辑运算: 10 1. 逻辑与操作: AND 10 2. 逻辑或操作: OR 10 3. 逻辑非操作: NOT 10 四、数值计算 11 1. 取整函数: round 11 2. 指定精度取整函数: round 11 3. 向下取整函数: floor 11 4. 向上取整函数: ceil 12 5. 向上取整函数: ceiling 12 6. 取随机数函数: rand 12 7. 自然指数函数: exp 13 8. 以10为底对数函数: log10 13 9. 以2为底对数函数: log2 13 10. 对数函数: log 13 11. 幂运算函数: pow 14 12. 幂运算函数: power 14 13. 开平方函数: sqrt 14 14. 进制函数: bin 14 15. 十六进制函数: hex 15 16. 反转十六进制函数: unhex 15 17. 进制转换函数: conv 15 18. 绝对值函数: abs 16 19. 正取余函数: pmod 16 20. 正弦函数: sin 16 21. 反正弦函数: asin 16 22. 余弦函数: cos 17 23. 反余弦函数: acos 17 24. positive函数: positive 17 25. negative函数: negative 17 五、日期函数 18 1. UNIX时间戳转日期函数: from_unixtime 18 2. 获取当前UNIX时间戳函数: unix_timestamp 18 3. 日期转UNIX时间戳函数: unix_timestamp 18 4. 指定格式日期转UNIX时间戳函数: unix_timestamp 18 5. 日期时间转日期函数: to_date 19 6. 日期转年函数: year 19 7. 日期转月函数: month 19 8. 日期转天函数: day 19 9. 日期转小时函数: hour 20 10. 日期转分钟函数: minute 20 11. 日期转秒函数: second 20 12. 日期转周函数: weekofyear 20 13. 日期比较函数: datediff 21 14. 日期增加函数: date_add 21 15. 日期减少函数: date_sub 21 六、条件函数 21 1. If函数: if 21 2. 非空查找函数: COALESCE 22 3. 条件判断函数:CASE 22 4. 条件判断函数:CASE 22 七、字符串函数 23 1. 字符串长度函数:length 23 2. 字符串反转函数:reverse 23 3. 字符串连接函数:concat 23 4. 带分隔符字符串连接函数:concat_ws 23 5. 字符串截取函数:substr,substring 24 6. 字符串截取函数:substr,substring 24 7. 字符串转大写函数:upper,ucase 24 8. 字符串转小写函数:lower,lcase 25 9. 去空格函数:trim 25 10. 左边去空格函数:ltrim 25 11. 右边去空格函数:rtrim 25 12. 正则表达式替换函数:regexp_replace 26 13. 正则表达式解析函数:regexp_extract 26 14. URL解析函数:parse_url 26 15. json解析函数:get_json_object 27 16. 空格字符串函数:space 27 17. 重复字符串函数:repeat 27 18. 首字符ascii函数:ascii 28 19. 左补足函数:lpad 28 20. 右补足函数:rpad 28 21. 分割字符串函数: split 28 22. 集合查找函数: find_in_set 29 八、集合统计函数 29 1. 个数统计函数: count 29 2. 总和统计函数: sum 29 3. 平均值统计函数: avg 30 4. 最小值统计函数: min 30 5. 最大值统计函数: max 30 6. 非空集合总体变量函数: var_pop 30 7. 非空集合样本变量函数: var_samp 31 8. 总体标准偏离函数: stddev_pop 31 9. 样本标准偏离函数: stddev_samp 31 10.中位数函数: percentile 31 11. 中位数函数: percentile 31 12. 近似中位数函数: percentile_approx 32 13. 近似中位数函数: percentile_approx 32 14. 直方图: histogram_numeric 32 九、复合类型构建操作 32 1. Map类型构建: map 32 2. Struct类型构建: struct 33 3. array类型构建: array 33 十、复杂类型访问操作 33 1. array类型访问: A[n] 33 2. map类型访问: M[key] 34 3. struct类型访问: S.x 34 十一、复杂类型长度统计函数 34 1. Map类型长度函数: size(Map) 34 2. array类型长度函数: size(Array) 34 3. 类型转换函数 35
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值