[一起学Hive]之二–Hive函数大全-完整版

Hive函数大全–完整版

现在虽然有很多SQL ON Hadoop的解决方案,像Spark SQL、Impala、Presto等等,但就目前来看,在基于Hadoop的大数据分析平台、数据仓库中,Hive仍然是不可替代的角色。尽管它的相应延迟大,尽管它启动MapReduce的时间相当长,但是它太方便、功能太强大了,做离线批量计算、ad-hoc查询甚至是实现数据挖掘算法,而且,和HBase、Spark都能整合使用。

如果你是做大数据分析平台和数据仓库相关的,就目前来说,我建议,Hive是必须的。

很早之前整理过Hive的函数,不过是基于0.7版本的,这两天抽时间更新了下,基于Hive0.13,比之前的完整了许多。

整理成文档,希望能给Hive初学者和Hive使用者有所帮助。Hive自带的UDF函数非常多,整理出来有40多页。下载地址在文章最后面。

如果该文档对你的学习和工作有所帮助,那么请多多支持我的博客。

Hive函数大全 目录:

一、关系运算:

  • 等值比较: =
  • 等值比较:<=>
  • 不等值比较: <>和!=
  • 小于比较: <
  • 小于等于比较: <=
  • 大于比较: >
  • 大于等于比较: >=
  • 空值判断: IS NULL
  • 非空判断: IS NOT NULL
  • LIKE比较: LIKE
  • JAVA的LIKE操作: RLIKE
  • 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
  • 条件判断函数: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
    10.中位数函数: percentile
  • 中位数函数: percentile
  • 近似中位数函数: percentile_approx
  • 近似中位数函数: percentile_approx
  • 直方图: histogram_numeric
  • 集合去重数:collect_set
  • 集合不去重函数:collect_list
    十五、表格生成函数Table-Generating Functions (UDTF)
  • 数组拆分成多行:explode