hive 函数

substr(string A, int start, [int len]),substring(string A, intstart, [int len]),用法一样,三个参数

 返回值: string

说明:返回字符串A从start位置开始,长度为len的字符串,下标默认为1.若没有长度默认到结尾。

round:ROUND(column_name,decimals) 把数值字段四舍五入为指定的小数位数。

column_name 要舍入的字段。

decimals 规定要返回的小数位数。

with 临时表 as():创建临时中间表

with tmp_a as (selectf1,f2,f3from test1

),

tmp_b as(selectf1,f4,f5from test2

)

行转列相关函数:

CONCAT(string A/col, string B/col…):返回输入字符串连接后的结果,支持任意个输入字符串;

CONCAT_WS(separator, str1, str2,...):它是一个特殊形式的 CONCAT()。第一个参数剩余参数间的分隔符。分隔符可以是与剩余参数一样的字符串。如果分隔符是 NULL,返回值也将为 NULL。这个函数会跳过分隔符参数后的任何 NULL 和空字符串。分隔符将被加到被连接的字符串之间;

COLLECT_SET(col):函数只接受基本数据类型,它的主要作用是将某字段的值进行去重汇总,产生array类型字段。

hive> select concat_ws('|',collect_set(cplb_zw)) from ods_sales_orders;

OK

_c0

服装|配件|自行车

计算日期差

datadiff:支持的格式:

yyyy-MM-dd HH:mm:ss

yyyy-MM-dd

其它符号格式时:

SELECT  datediff(regexp_replace('2015/4/15', "/", "-"),regexp_replace('2013/2/15', "/", "-"))   

from_unixtime:时间戳转日期函数

用法:from_unixtime(bigint unixtime[, stringformat])

unix_timestamp:日期转时间戳函数

用法:unix_timestamp(string date)

注意:里面格式必须是yyyy-MM-dd HH:mm:ss,如果不是会返回null值

你可能感兴趣的:(hive 函数)