0

我正在尝试学习将 Python UDF 与 Hive 一起使用。

我在这里有一个非常基本的 python UDF:

import sys
for line in sys.stdin:
    line = line.strip()
    print line

然后我在 Hive 中添加文件:

ADD FILE /home/hadoop/test2.py;

现在我调用 Hive 查询:

SELECT TRANSFORM (admission_type_id, description)
USING 'python test2.py'
FROM admission_type;

这按预期工作,没有对字段进行任何更改,并且输出按原样打印。

现在,当我通过引入 split 函数来修改 UDF 时,我得到一个执行错误。我如何在这里调试?我做错了什么?

新的 UDF:

import sys
for line in sys.stdin:
    line = line.strip()
    fields = line.split('\t') # when this line is introduced, I get an execution error
    print line
4

1 回答 1

1
import sys

for line in sys.stdin:
    line = line.strip()
    field1, field2 = line.split('\t') 
    print '\t'.join([str(field1), str(field2)])


SELECT TRANSFORM (admission_type_id, description)    
USING 'python test2.py' As ( admission_type_id_new, description_new)    
FROM admission_type;
于 2017-09-26T10:51:44.110 回答