目录
系统函数:
查看系统内置函数:Show functions
字符串函数:
Concat :
传入多个字符串,进行拼接
Concat_ws:
以第一个参数为指定的连接符进行连接
Collect_set:
将输入的基本数据类型进行去重汇总,产生新的array
Collect_list:
将输入的基本数据类型进行不去重汇总,产生新的array。
split:
分离
substring:
字符串切割
upper:
小写转大写
lower:
大写转小写
trim:
去掉一个字符串前后的空格
Lpad(str,len,pad):
左填充,用pad补充到 len位。
rpad(str,len,pad)
右填充,用pad补充道 len位
Regexp_replace(str,regexp,rep)
将字符串中的regexp用rep来代替
处理时间函数:
函数识别的时间格式:
yyyy-MM-dd HH:mm:ss
Unix_timestamp();
返回当前时间或指定时间的时间戳
From_unixtime
将时间戳以指定的时间格式返回
Current_timestamp:
返回当前时间,精确到毫秒
Current_date:
返回当前日期,精确到天
To_date:
提取一个字符串当中的日期
年(year)
月(month)
日(day)
时(hour)
分(minute)
秒(second)
Weekofyear():
返回传入日期是一年的第几周
Dayofmonth:
返回传入日期是一个月的第几天
Months_between(date1,date2):
返回相差日期的月数,精确到小数位,前减后
Add_months()
返回输入日期加输入的月数,返回新日期。
datediff:
返回两个日期相差的个数,前减后
Date_add:
日期加天数,返回相加后的新日期
Date _sub:
日期减天数,返回相减后的新日期
Last_day:
返回输入日期的当月最后一天
Date_format:
日期格式化,将标准日期格式转换成另一种格式
处理小数的函数
round:四舍五入
默认保留一位小数
floor:
向下取整
ceil:
向上取整
处理集合的函数
size:
返回一个数组的元素个数
Map_keys:
返回一个map中所有的key,以数组的方式返回
Map_values:
返会一个map中的所有value,以数组的方式返回
Array_contains
判断一个数组中是否有包含的元素
Sort_array
将数组中的元素进行排序
自定义函数:
hive中的函数分三类
udf:一进一出
□ floor、upper
udaf:聚合函数
□ sum、count
udtf:一进多出
窗口函数:
窗口函数的格式:
函数 over (partition by 字段 order by 字段 window clause)
函数:不是所有的函数都支持开窗
Windowing functions
lead:往后数n行
lag:往前数n行
First_value:数据计算范围的第一行
Last_value:数据计算范围的最后一行
聚合函数
Count
Sum
Min
Max
Avg
分析函数
Rank :
排名函数,可以并列排序,遇到并列会跳号
Row_number:
行号,不并列,不跳号
Dense_rank:
可以并列,不跳号
Cume_dist:
小于等于当前rank的行数/分组内的总行数
Percent_rank:
rank行-1/总行数-1
ntile:
将数据分成n份
Partition by
和group by 类似,将数据进行分组
区别:
group by 可以去重,partition by 不可以去重
Group by 之后select 后面只能跟被group by字段和聚合函数,partition by 无限制
Order by
每个partition by 内部进行排序
window clause
(ROWS | RANGE) BETWEEN (UNBOUNDED | [num]) PRECEDING AND ([num] PRECEDING | CURRENT ROW | (UNBOUNDED | [num]) FOLLOWING)
(ROWS | RANGE) BETWEEN CURRENT ROW AND (CURRENT ROW | (UNBOUNDED | [num]) FOLLOWING)
(ROWS | RANGE) BETWEEN [num] FOLLOWING AND (UNBOUNDED | [num]) FOLLOWING
Unbounded preceding:每个partition的上边界
Unbounded following:每个partition的下边界
5 preceding :当前行数向前移动5行
5 following:当前行数向后移动5行