Java에서 첫 번째 Pig UDF를 빌드하려고하는데 Eclipse로 빌드 할 때 함수를 호출하는 데 문제가 있습니다 (클래스 경로에 pig 0.10.0 jar 파일이 있음). 소스 파일은 /com/foo/bar/pig/IsInternal.java
이고 클래스 파일은 Eclipse에 의해 /bin/com/foo/bar/pig/IsInternal.class
에 있습니다.Pig UDF for Java : 오류 1070
내 코드는 다음과 같습니다
package com.foo.bar.pig;
// ... imports ...
public class IsInternal extends FilterFunc {
public Boolean exec(Tuple input) throws IOException {
// ... code here ...
return true; // or false
}
}
내가 컴파일 한 후, 나는 JAR로 모두를 포장하는 단지 프로젝트 디렉토리 외부에서 jar -cf PiggyBank.jar BiggyBank
를 실행합니다. 나는 다음과 같은 오류가 발생하는 시점에서
REGISTER /full/path/to/PiggyBank.jar
DEFINE isInternal com.foo.bar.pig.IsInternal();
A = LOAD '/some/file/in/hdfs' USING PigStorage();
B = FILTER A BY isInternal($1);
: 나는 돼지를 실행할 때, 나는 꿀꿀 거리는 소리 쉘에서 다음을 시도
ERROR 1070: Could not resolve com.foo.bar.pig.IsInternal using imports: [, org.apache.pig.builtin, org.apache.pig.impl.builtin.]
자바 코드 자체는 괜찮 (내가 그것을 테스트했습니다) , 그리고 행운없이 DEFINE에서 다른 클래스 경로로 놀아 보려고했습니다. 나는 온라인으로 도움을받지 못했다. 어떻게 해결할 수 있을까요?