Hive 函数
Hive 内置函数
1、内容较多,见《Hive 官方文档》
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF
2、测试内置函数的快捷方式:
第一种方式:直接使用,例如:select concat(‘a’,‘a’) aa
第二种方式:
1、创建一个 dual 表 create table dual(id string);
2、load 一个文件(一行,一个空格)到 dual 表
3、select substr(‘huangbo’,2,3) from dual;
3、查看内置函数:
show functions;
显示函数的详细信息:
desc function abs;
显示函数的扩展信息:
desc function extended concat;
4、内置函数列表
一、关系运算:
- 等值比较: =
- 等值比较:<=>
- 不等值比较: <>和!=
- 小于比较: <
- 小于等于比较: <=
- 大于比较: >
- 大于等于比较: >=
- 区间比较
- 空值判断: IS NULL
- 非空判断: IS NOT NULL 10. LIKE 比较: LIKE
- JAVA 的 LIKE 操作: RLIKE 12. REGEXP 操作: REGEXP
二、数学运算: - 加法操作: +
- 减法操作: –
- 乘法操作: *
- 除法操作: /
- 取余操作: %
- 位与操作: &
- 位或操作: |
- 位异或操作: ^
- 9.位取反操作: ~
三、逻辑运算: - 逻辑与操作: AND 、&&
- 逻辑或操作: OR 、||
- 逻辑非操作: NOT、!
四、复合类型构造函数 - map 结构
- struct 结构
- named_struct 结构
- array 结构
- create_union
五、复合类型操作符 - 获取 array 中的元素
- 获取 map 中的元素
- 获取 struct 中的元素
六、数值计算函数 - 取整函数: round
- 指定精度取整函数: round
- 向下取整函数: floor
- 向上取整函数: ceil
- 向上取整函数: ceiling
- 取随机数函数: rand
- 自然指数函数: exp
- 以 10 为底对数函数: log10
- 以 2 为底对数函数: log2
- 对数函数: log
- 幂运算函数: pow
- 幂运算函数: power
- 开平方函数: sqrt
- 二进制函数: bin
- 十六进制函数: hex
- 反转十六进制函数: unhex
- 进制转换函数: conv
- 绝对值函数: abs
- 正取余函数: pmod
- 正弦函数: sin
- 反正弦函数: asin
- 余弦函数: cos
- 反余弦函数: acos
- positive 函数: positive
- negative 函数: negative
七、集合操作函数 - map 类型大小:size
- array 类型大小:size
- 判断元素数组是否包含元素:array_contains
- 获取 map 中所有 value 集合
- 获取 map 中所有 key 集合
- 数组排序
八、类型转换函数 - 二进制转换:binary
- 基础类型之间强制转换:cast
九、日期函数 - UNIX 时间戳转日期函数: from_unixtime
- 获取当前 UNIX 时间戳函数: unix_timestamp
- 日期转 UNIX 时间戳函数: unix_timestamp
- 指定格式日期转 UNIX 时间戳函数: unix_timestamp
-
- 日期时间转日期函数: to_date
- 日期转年函数: year
- 日期转月函数: month
- 日期转天函数: day
- 日期转小时函数: hour
- 日期转分钟函数: minute
- 日期转秒函数: second
- 日期转周函数: weekofyear
- 日期比较函数: datediff
- 日期增加函数: date_add
- 日期减少函数: date_sub
十、条件函数 - If 函数: if
- 非空查找函数: COALESCE
- 条件判断函数:CASE
十一、字符串函数 - 字符 ascii 码函数:ascii
- base64 字符串
- 字符串连接函数:concat
- 带分隔符字符串连接函数:concat_ws
- 数组转换成字符串的函数:concat_ws
- 小数位格式化成字符串函数:format_number
- 字符串截取函数:substr,substring
- 字符串截取函数:substr,substring
- 字符串查找函数:instr
- 字符串长度函数:length
- 字符串查找函数:locate
- 字符串格式化函数:printf
- 字符串转换成 map 函数:str_to_map
- base64 解码函数:unbase64(string str)
- 字符串转大写函数:upper,ucase
- 字符串转小写函数:lower,lcase
- 去空格函数:trim
- 左边去空格函数:ltrim
- 右边去空格函数:rtrim
- 正则表达式替换函数:regexp_replace
- 正则表达式解析函数:regexp_extract
- URL 解析函数:parse_url
- json 解析函数:get_json_object
- 空格字符串函数:space
- 重复字符串函数:repeat
- 左补足函数:lpad
-
- 右补足函数:rpad
- 分割字符串函数: split
- 集合查找函数: find_in_set
- 分词函数:sentences
- 分词后统计一起出现频次最高的 TOP-K
- 分词后统计与指定单词一起出现频次最高的 TOP-K
十二、混合函数 - 调用 Java 函数:java_method
- 调用 Java 函数:reflect
- 字符串的 hash 值:hash
十三、XPath 解析 XML 函数 - xpath
- xpath_string
- xpath_boolean
- xpath_short, xpath_int, xpath_long
- xpath_float, xpath_double, xpath_number
十四、汇总统计函数(UDAF) - 个数统计函数: count
- 总和统计函数: sum
- 平均值统计函数: avg
- 最小值统计函数: min
- 最大值统计函数: max
- 非空集合总体变量函数: var_pop
- 非空集合样本变量函数: var_samp
- 总体标准偏离函数: stddev_pop
- 样本标准偏离函数: stddev_samp
- 中位数函数: percentile
- 中位数函数: percentile
- 近似中位数函数: percentile_approx
- 近似中位数函数: percentile_approx
- 直方图: histogram_numeric
- 集合去重数:collect_set
- 集合不去重函数:collect_list
十五、表格生成函数 Table-Generating Functions (UDTF)
1.数组拆分成多行:explode(array)
2.Map 拆分成多行:explode(map)