2017-02-13 4 views
0

하이브와 함께 파이썬 UDF를 사용하는 법을 배우려합니다.하이브와 함께 파이썬 UDF 사용

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; 

여기 아주 기본적인 파이썬 UDF가 예상대로 작동하지만 필드가 변경되지 않고 출력이있는 그대로 인쇄됩니다.

이제 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 
+1

부두를 바랍니다. 때로는 실패하고 때때로 작동합니다. –

답변

-1

확인이 link .. ..이 도움이 될 것입니다

+1

이것은 코멘트가 아닌 답변으로 추가되어야합니다. –

0
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;