HQL (hive sql)之函数总结
1. 背景
- 作为操作hive客户端的编程语言,hql有自己的数据类型,自然也有编译器,也有函数。并且这个函数有内置,也允许自定义来扩展功能
- 注意,不管是普通hql语言还是函数,最终都是转换为mapreduce程序来运行。(很少部分例外,是一些sql语句可以优化为不使用mapreduce,直接读取文件获取结果即可)
2. hive定义函数
2.1. 查看系统自带函数
show functions;
2.2. 显示自带函数用法
desc function upper;
2.3. 详细显示自带函数用法
desc function extended upper;
2.4. 官方文档
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF
2.5 函数分类
2.5.1 运算符优先级
2.5.2 关系运算,就是得出的结果是true或者false(特殊几个特定场景返回NULL)
2.5.3 数值运算
注意,在HQL中,并没有异常这种概念,包括数组越界,null空指针等,只会以返回null值或者其他方式来兼容这些异常,并不是像java程序一样直接终止程序
2.5.4 逻辑运算符
2.5.5 字符串操作符
2.5.6 复杂类型构造方法
2.5.7 复杂类型操作符
2.5.8 数学运算
2.5.9 集合函数
2.5.10 类型转换
2.5.11 日期函数
2.5.12 条件判断
2.5.13 字符串处理函数