Написание UDF на Python с использованием ошибки Pandas - PullRequest
0 голосов
/ 20 декабря 2018

Мы пытаемся написать UDF-файлы Hive на Python для очистки данных.UDF, который мы пытались использовать, использовал Pandas, и он выдает ошибку.

Когда мы пытаемся использовать другой код Python без Pandas, он работает нормально.Пожалуйста, помогите понять проблему.Ниже приведен код Pandas:

Мы уже пробовали разные способы использования Pandas, но, к сожалению, не повезло.Поскольку другой код Python без Pandas работает нормально, мы не понимаем, почему он не работает?

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

1 Ответ

0 голосов
/ 20 декабря 2018

Я думаю, вам нужно просмотреть подробные журналы работы для получения дополнительной информации.Мое первое предположение состоит в том, что Pandas не установлен на узле данных.

Этот ответ выглядит уместным для вас, если вы собираетесь связывать зависимости с вашей работой: https://stackoverflow.com/a/2869974/7379644

...