在配置单元中使用python udf

7eumitmz  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(691)

我正在尝试学习使用python自定义项和hive。
我这里有一个非常基本的python自定义项:

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

然后在配置单元中添加文件:

ADD FILE /home/hadoop/test2.py;

现在我调用配置单元查询:

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

这与预期一样工作,不更改字段,输出按原样打印。
现在,当我通过引入split函数来修改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
41ik7eoe

41ik7eoe1#

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;

相关问题