主要是利用hive提供的transform语句。
1.编写python脚本,python脚本数据如下(参考:https://dwgeek.com/hive-udf-using-python-use-python-script-into-hive-example.html/):
import sys for line in sys.stdin: line = line.strip('\n\r') fname , lname = line.split('\t') firstname = fname.title() lastname = lname.title() print '\t'.join([firstname, lastname])
2.在hive CLI中增加python脚本,脚本可以放到服务器本地目录或者hdfs中,依据py脚本所处的位置使用不同的add file语句。
--在服务器本地目录时 add file initCap.py --在hdfs时 add file hdfs:///tmp/initCap.py
由于我们的hive配置了sentry权限控制,经测试只有hive CLI能够执行add file,用beeline或者其它客户端的时候会报没有权限的问题,具体原因还不知道。
3. 在hive sql中使用刚才我们添加的python脚本,示例sql如下:
select transform('abc\tdef') using 'python initCap.py' as (col_name,khjd);
以上。