一、 Hive运算符
1. 关系运算符
- 常见的= <> < > <= >=
- 空值判断 IS NULL
- 非空判断 IS NOT NULL
- LIKE LIKE
- JAVA的LIKE操作 RLIKE
- REGEXP操作 REGEXP
示例:
hive> select 1 from dual where 1=1;2. 逻辑运算符
+ - * / %& 位与 
 | 位或 
 ^ 位异或 
 ~ 位取反 
 逻辑运算符: AND OR NOT 
二、 Hive函数操作
1.标准函数
(1)数值运算
- 取整:round
- 指定精度取整:round
- 向下取整:floor
- 向上取整:ceil ceiling
- 随机数:rand
- 自然指数:exp
- log10:
- log2:
- 对数:log
- 幂运算符:pow power
- 开平方:sqrt
- 二进制:bin
- 十六进制:hex
- 反转十六进制:unhex
- 进制转换:conv
- 绝对值:abs
- 正取余:pmod
- 正弦:sin
- 反正弦:asin
- 余弦:cos
- 反余弦:acos
- positive:?
- negative:?
(2)日期函数
- unix时间戳转日期:fom_unixtime
- 获取当前unix 时间戳:unix_timestamp
- 日期转unix时间戳:unix_timestamp
- 指定格式日期转unix时间戳:unix_timestamp
- 日期时间转日期:to_date
- 日期转年等:year month day hour minute second weekofyear
- 日期比较:date_add
- 日期增加:date_add
- 日期减少:date_sub
(3)字符串函数
- 长度:length
- 反转:reverse
- 连接:concat
- 带分隔符字符串连接函数:concat_ws
- 字符串截取函数:substr,substring
- 转大写:upper ucase
- 转小写:lower lcase
- 去空格:trim ltrim rtrim
- 正则表达式替换函数:regexp_replace
- 正则表达式解析函数:regexp_extract
 函数描述:
 regexp_extract(str, regexp[, idx]) - extracts a group that matches regexp
 参数解释*
 str是被解析的字符串
 regexp 是正则表达式
 idx是返回结果 取表达式的哪一部分 默认值为1。
 0表示把整个正则表达式对应的结果全部返回
 1表示返回正则表达式中第一个() 对应的结果 以此类推
- URL解析函数:parse_url
- json:get_json_object
- 空格:space
- 重复字符串:repeat
- 首字符ascii:ascii
- 左补足:lpad
- 右补足:rpad
- 分割字符串:split
- 集合查找:find_in_set
(4)复合类型
- Map
- Struct
- array
(5)复杂类型访问与计算长度
- array: A[n]
- map: M[key]
- struct:S.x
 长度:size(A)
(6)类型转换
- cast:
2.聚合函数
- sum(col)
- avg(col)
- max(col)
- std(col)等
3.表生成函数
表生成函数接收0个或多个输入,产生多列或多行输出,典型的有explode(Array a),如:
SELECT EXPLODE (ARRAY("a","b","c")) AS s FROM test;explode函数将数组的每一个元素生成新的一行。
三、自定义函数
自定义函数包括三种:UDF标准函数、UADF聚合函数、UDTF表生成函数。 
 用户自定义函数必须使用Java编写。
HIVE中使用定义的函数的三种方式
- 在Hive会话中add 自定义函数的jar文件,然后创建function,继而使用函数。
- 在进入HIVE会话之前先自动执行创建function,而不用手工创建。
- 把自定义的函数写到系统函数中,使之成为HIVE的一个默认函数,这样就不需要create temporary function。
1.UDF
需要继承org.apache.hadoop.hive.ql.exec.UDF,并实现evaluate函数。
2.UDAF
需要继承org.apache.hadoop.hive.ql.exec.UDAF类
3.UDTF
需要继承org.apache.hadoop.hive.ql.udf.generic.GenericUDTF并实现initialize,process,close三个方法。
以上详细用法等用到时再补充。
                
                









