2011-12-26 4 views
0
REGISTER /home/hadoop/pigg/trunk/contrib/piggybank/java/piggybank.jar; 

-- Use the PigStorage function to load the excite log file into the raw bag as an array of records. 
-- Input: (user,time,query) 
A = LOAD 'hadoop-test-data.csv' USING PigStorage(',') AS (user: chararray, site: chararray, view: int, click: int); 

B = FOREACH A GENERATE org.apache.pig.piggybank.evaluation.string.UPPER(user); 
-- Use the PigStorage function to store the results. 
STORE B INTO 'test-pig-result' USING PigStorage(); 

이것은 내 코드입니다. 사용자 이름을 대문자로 변환 한 것입니다.이 코드는 돼지 루트 폴더의 test.pig에 저장되어 있습니다.
Apache Pig, programe 실행 문제

나는이 코드를 실행하고

,

java -cp $PIGGDIR/trunk/contrib/piggybank/java/piggybank.jar:$HADOOP_HOME/conf org.apache.pig.piggybank test.pig 

그러나 그 킵 던지는 다음과 같은 오류,

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/pig/piggybank/Main 
    Caused by: java.lang.ClassNotFoundException: org.apache.pig.piggybank.Main 
      at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
      at java.security.AccessController.doPrivileged(Native Method) 
      at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
      at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
      at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
      at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
    Could not find the main class: org.apache.pig.piggybank.Main. Program will exit. 

을하지만 꿀꿀 거리는 소리에 같은 프로그램을 실행하면 다음 나에게 적절한 출력을 제공합니다. java -cp 님의 두 번째 마지막 매개 변수 인 가능한 모든 매개 변수를 시도했습니다.

또한 CSVLoader 클래스가 사용되는 예제가 필요합니다. 당신이 돼지를 실행하려면

답변

3

로컬 당신은 pig.jar이 piggybank.jar이 스크립트의 REGISTER 명령으로 스크립트에 포함됩니다하지 piggybank.jar 실행해야

+0

하거나 bin''에서'pig' 실행 파일을 사용 . –