hive 调用python 写的udf 报错 return code 20003 from org.apache.hadoop.hive.ql.exec.mr.
更新时间:2021-08-26 11:07:16 • 作者:ADAM •阅读 4311
- hive 调用python 写的udf 报错
- hive报错FAILED: Execution Error, return code 2 from .apache.hadoop.hive.ql.exec.mr.MapRedTask
- hive运行时报错
- return code 2 from .apache.hadoop.hive.ql.exec.mr.mapredtask 这个是什么错
hive 调用python 写的udf 报错
你把print写在try里面当然会少数据。你应该try访问fields数组并更新fields[2]的值。另一方面,从功能点上来说,使用SQL函数nvl或coalesce就能实现,没必要写个UDF来实现,你这样做增加额外的IO消耗和工作量。如果一定要写UDF,建议少用print,改用标准输出实现:sys.stdout.write()。
hive报错FAILED: Execution Error, return code 2 from .apache.hadoop.hive.ql.exec.mr.MapRedTask
首先,code 2 经常是再试一次就好了。
如果不好的话,你提供的信息不足以排错,需要详细的错误栈
hive运行时报错
一般这个问题是hive调用hadoop的时候datanode写不了数据导致的。因为格式化了namenode,所以datanode里的数据都要清掉,否则datanode中记录的version号与namenode中不一样,就会无法使用旧数据且不能写入新数据。清datanode时在linux下直接去设置的数据存放目录,把文件夹删除就行了。
namenode尽量不要格式化。
return code 2 from .apache.hadoop.hive.ql.exec.mr.mapredtask 这个是什么错
hive的jdbc包,jar包名字大概是hive-jdbc.jar,你找找hive包下带jdbc的看看。