使用错误在python中编写udf

1yjd4xko  于 2021-06-27  发布在  Hive
关注(0)|答案(1)|浏览(458)

我们正在尝试用python编写hive的udf来清理数据。我们尝试的udf使用的是pandas,它抛出了错误。
当我们尝试使用另一个没有Pandas的python代码时,它工作得很好。请帮助理解这个问题。提供以下代码:
我们已经尝试过各种各样的方法来饲养Pandas,但不幸的是没有运气。由于其他没有pandas的python代码运行良好,我们很困惑为什么它会失败?

import sys
import pandas as pd
import numpy as np
for line in sys.stdin:
    df = line.split('\t')
    df1 = pd.DataFrame(df)
    df2=df1.T
    df2[0] = np.where(df2[0].str.isalpha(), df2[0], np.nan)
    df2[1] = np.where(df2[1].astype(str).str.isdigit(), df2[1], np.nan)
    df2[2] = np.where(df2[2].astype(str).str.len() != 10, np.nan, 
    df2[2].astype(str))
    #df2[3] = np.where(df2[3].astype(str).str.isdigit(), df2[3], np.nan)
    df2 = df2.dropna()
    print(df2)

我得到这个错误:

FAILED: Execution Error, return code 20003 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask. An error occurred when trying to close the Operator running your custom script.
MapReduce Jobs Launched: 
Stage-Stage-1: Map: 1   HDFS Read: 0 HDFS Write: 0 FAIL
Total MapReduce CPU Time Spent: 0 msec
g2ieeal7

g2ieeal71#

我想你需要查看详细的工作日志来获取更多信息。我的第一个猜测是pandas没有安装在数据节点上。
如果您打算将依赖项与您的工作捆绑在一起,那么这个答案看起来很适合您:https://stackoverflow.com/a/2869974/7379644

相关问题