如果我们想在hive中添加自己写的函数,可用如下方法: 前提:已经开启hdfs,yarn服务,并且关闭safe模式,打开mysql ps:udf是mapper类型的,进来一个数据,出去一个数据 (1)用python写好想要实现的函数 这里我的测试表是这样一份表,我想让此表的state字段都变成大写,所以我编辑了如下python脚本:
编辑的脚本py_udf(udf前面已经解释)如下:
代码语言:javascript复制import sys
for line in sys.stdin:
line = line.strip()
team,state,rank = line.split()
state = state.upper()
print( ' '.join([team,state,str(rank)]))
(2)加入路径(至关重要的一步) 这份文件在本地路径下
(3)实现语句TRANSFORM
可见,california和colorado已经大写,成功输出,这里要使用TRANSFORM 前面的‘()’的参数是你表中的字段,也就是desc查出来的字段,而后面的‘()’的参数是你pyhon脚本里输出的参数。 可以在yarn可视化界面查看该任务: