一、 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三个方法。
以上详细用法等用到时再补充。
                
                









