2012-01-24 14 views
1

我試圖用逗號分隔的列表在Pig中用AvroStorage加載幾個文件。我使用的說法是:用Pig中的AvroStorage逗號分隔的列表

test_data= LOAD 'repo_1/part-r-00000.avro,repo_2/part-r-00000.avro' USING org.apache.pig.piggybank.storage.avro.AvroStorage(); 

Pig指出沒有在作業中指定輸入路徑。請參閱下面的堆棧跟蹤。 我試過豬版本0.8.1-cdh3u2和0.9.1。

有沒有人觀察到相同的行爲?它是一個錯誤還是一個功能?

堆棧跟蹤:

rg.apache.pig.backend.executionengine.ExecException: ERROR 2118: No input paths specified in job 
    at org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigInputFormat.getSplits(PigInputFormat.java:282) 
    at org.apache.hadoop.mapred.JobClient.writeNewSplits(JobClient.java:885) 
    at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:779) 
    at org.apache.hadoop.mapred.JobClient.submitJob(JobClient.java:730) 
    at org.apache.hadoop.mapred.jobcontrol.Job.submit(Job.java:378) 
    at org.apache.hadoop.mapred.jobcontrol.JobControl.startReadyJobs(JobControl.java:247) 
    at org.apache.hadoop.mapred.jobcontrol.JobControl.run(JobControl.java:279) 
    at java.lang.Thread.run(Thread.java:679) 
Caused by: java.io.IOException: No input paths specified in job 
    at org.apache.hadoop.mapreduce.lib.input.FileInputFormat.listStatus(FileInputFormat.java:186) 
    at org.apache.hadoop.mapreduce.lib.input.FileInputFormat.getSplits(FileInputFormat.java:241) 
    at org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigInputFormat.getSplits(PigInputFormat.java:270) 
    ... 7 more 

回答

0

那些部分文件由豬自動加載的,所以你只需要到指定的目錄。

嘗試

test_file1 = LOAD 'repo_1' using AvroStorage(); 
test_file2 = LOAD 'repo_2' using AvroStorage(); 
test_file = UNION test_file1, test_file2;