1

我正在使用这个 Python UDF 脚本:

import sys
import collections 
import datetime
import re

try:
    for line in sys.stdin: 
        line=line.strip()
        number,sd=line.split('\t')
        sd=sd.lower()
        sd=sd.split(' ')
        new_sd_list=collections.OrderedDict(collections.Counter(sd))
        new_sd=' '.join(new_sd_list)
        print('\t'.join([str(number),str(new_sd])))
except:
    print(sys.exc_info())

在 Putty 中执行以下命令时。

SELECT TRANSFORM(number,shortdescription) USING 'python name.py' \
   AS (number,shortdescription) FROM table;

我收到此错误:

原因:org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while processing row {"number": "ABC00548","shortdescription":""India Optimizer 中的主数据不一致检查。"}

失败:执行错误,从 org.apache.hadoop.hive.ql.exec.mr.MapRedTask 返回代码 2 已启动 MapReduce 作业:Stage-Stage-1:映射:4 HDFS 读取:0 HDFS 写入:0 FAIL MapReduce CPU 总时间花费:0 毫秒

4

1 回答 1

0
import sys
import collections 
import datetime
import re

try:
    for line in sys.stdin: 
        line=line.strip()
        number,sd=line.split('\t')
        sd=sd.lower()
        sd=sd.split(' ')
        new_sd_list=collections.OrderedDict(collections.Counter(sd))
        new_sd=' '.join(new_sd_list)
        print('\t'.join([str(number),str(new_sd)])) #syntax error
except:
    print(sys.exc_info())
于 2019-03-08T12:11:23.437 回答