hive tricks
(原创)
hive的一些tricks:
- 处理数据内含分号的 ; ,用 '\073' 代替
- hive 9146 bug(新版本已修复),关联条件的顺序不一样:
... on (A) and (B) 和 ... on (B) and (A) 竟然导致不一样的结果,
详情见 https://issues.apache.org/jira/browse/HIVE-9146 。
- hive 取默认字段 `_c1`
- hive正则转义 \用两个,如 \\d
- mapjoin优化,用于关联时有小表,小表放到内存里,select /*+ MAPJOIN(small_tb) */ ...
- hive可以调用python的脚本,方法是:
add file /path_of_python_file/py_file.py;
select transform(col1,col2,col3...) using 'python py_file.py' as (out1,out2,out3...) from table;
transform 的参数col1,col2,col3... 作为python脚本的输入,而out1,out2,out3...作为输出字段。
利用这个可以把hive自身所带的函数不能或不方便处理的任务,转用python写。