Hive执行Python脚本错误解决【return code 20003】

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

在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, "男性"]))

修改后,即可顺利执行!结果如下
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值