我有一个简单的 Python 脚本
#!/usr/local/bin/python
import sys
import datetime
for line in sys.stdin:
line = line.strip()
fname , lname = line.split('\t')
l_name = lname.lower()
print '\t'.join([fname, str(l_name)])
Hive 表数据如下所示:
Akash Gupta
Ashish Agarwal
Aarav Kedia
Rajesh Lakhia
Sunita Patel
Raj Dutta
Nadeem Siddiqui
表结构是:
hive> desc fullName;
OK
fname string
lname string
我将我的 Python 脚本添加为:
add FILE /full-path-to-the-script/convertToLowerCase.py;
现在,我正在为脚本运行转换操作:
SELECT TRANSFORM(fname, lname) USING 'python convertToLowerCase.py' AS (fname, l_name) FROM fullName;
但是,Map Reduce 作业抛出错误:
失败:执行错误,从 org.apache.hadoop.hive.ql.exec.mr.MapRedTask 返回代码 20003。尝试关闭运行自定义脚本的 Operator 时出错。
我做错了什么?
最佳答案
Python 代码有问题。
For 循环的缩进
。
这解决了问题。
关于python - 配置单元 Python UDF 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44007657/