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:日期转时间戳函数