在Hive中用Python实现自定义函数时,出现【return code 20003】解决方法
报错提示

报错原因
原Hive表的数据是以逗号进行分隔的,但在Python脚本无法识别!无论Hive表的分隔符是什么,Python脚本中的分隔符都是"\t"!
解决方法
修改Python读入的分隔符!
原Python代码
# -*- coding: UTF-8 -*-
import sys
for line in sys.stdin:
inf = line.strip().split(",")
name = inf[0]
gender = inf[1]
if int(gender) == 1:
print("\t".join([name, gender, "女性"]))
else:
print("\t".join([name, gender, "男性"]))
现Python代码
# -*- coding: UTF-8 -*-
import sys
for line in sys.stdin:
inf = line.strip().split("\t") #修改为\t分隔符!
name = inf[0]
gender = inf[1]
if int(gender) == 1:
print("\t".join([name, gender, "女性"]))
else:
print("\t".join([name, gender, "男性"]))
修改后,即可顺利执行!结果如下

本文介绍了一种在Hive中使用Python自定义函数时遇到的分隔符不匹配问题及解决方案。当Hive表数据采用逗号分隔而Python脚本默认使用制表符时,会导致数据解析错误。通过调整Python脚本中的分隔符为逗号,成功解决了该问题。
6149

被折叠的 条评论
为什么被折叠?



