JAR 파일을 사용하고 그 기능을 파이썬 스크립트로 가져 오려고합니다. JAR 파일은 내 파이썬 스크립트와 돼지 스크립트Python 스크립트에 JAR 파일 추가하기
script.py
import sys
sys.path.append('/home/hadoop/scripts/jyson-1.0.2.jar')
from com.xhaus.jyson import JysonCodec as json
@outputSchema('output_field_name:chararray')
def get_team(arg0):
return json.loads(arg0)
script.pig과 같은 디렉토리에 있습니다
register 'script.py' using jython as script_udf;
a = LOAD 'data.json' USING PigStorage('*') as (line:chararray);
teams = FOREACH a GENERATE script_udf.get_team(line);
dump teams;
그것은 매우 간단한 UDF입니다 내가 사용하려고 시도하고 있지만, 어떤 이유로 든 항상 "xhaus라는 모듈이 없습니다"라는 오류가 발생합니다. 그 항아리에있는 모든 수업이 있습니다.
$ jar tf jyson-1.0.2.jar
META-INF/
META-INF/MANIFEST.MF
com/
com/xhaus/
com/xhaus/jyson/
com/xhaus/jyson/JSONDecodeError.class
com/xhaus/jyson/JSONEncodeError.class
com/xhaus/jyson/JSONError.class
com/xhaus/jyson/JysonCodec.class
com/xhaus/jyson/JysonDecoder.class
com/xhaus/jyson/JysonEncoder.class
그래서 xhaus가 항아리에 존재합니다. 그러나 어떤 이유에서 이것이 선택되지 않았습니다. 몇 가지 자습서를 보면 스크립트를 잘 실행할 수 있습니다. 나는 어리석은 세부 사항을 놓칠지도 모른다. 도와주세요.
편집 :이 스크립트는 돼지에 의해 실행되는
. 그래서 돼지 스크립트는 파이썬 스크립트를 호출합니다. 파이썬 스크립트는 JysonCodec 클래스를 사용합니다.
pig script.pig
Python 또는 Jython에서 이것을 실행하고 있습니까? –
스크립트가 어떻게 실행되고 있는지 알려주도록 편집했습니다. – macha