转储无效

时间:2015-05-13 08:42:57

标签: hadoop apache-pig biginsights

我正在使用IBM BigInsights。 当我在Pig Grunt shell中执行DUMP命令时,我没有得到任何结果。

示例输入文件:

s_no,name,DOB,mobile_no,email_id,country_code,sex,disease,age
11111,bbb1,12-10-1950,1234567890,bbb1@xxx.com,1111111111,M,Diabetes,78
11112,bbb2,12-10-1984,1234567890,bbb2@xxx.com,1111111111,F,PCOS,67
11113,bbb3,712/11/1940,1234567890,bbb3@xxx.com,1111111111,M,Fever,90
11114,bbb4,12-12-1950,1234567890,bbb4@xxx.com,1111111111,F,Cold,88
11115,bbb5,12/13/1960,1234567890,bbb5@xxx.com,1111111111,M,Blood Pressure,76

INFO  [JobControl] org.apache.hadoop.mapreduce.lib.input.FileInputFormat     - Total input paths to process : 1

我的代码如下:

    A = LOAD 'healthcare_Sample_dataset1.csv' as(s_no:long,name:chararray,DOB:datetime,mobile_no:long,email_id:chararray,country_code:long,sex:chararray,disease:chararray,age:int);
B = FOREACH A GENERATE name;
C = LIMIT B 5;
DUMP C;

请帮我解决这个问题。

谢谢和问候!!!

3 个答案:

答案 0 :(得分:0)

从您的脚本中我可以看到您正在使用CSV File。如果您正在使用CSVLoader(),那么您应该在您的猪脚本中使用--Register piggybank jar which contains UDF of CSVLoader REGISTER piggybank.jar -- Define the UDF define CSVLoader org.apache.pig.piggybank.storage.CSVLoader(); --Load data using CSVLoader A = load '/user/biadmin/test/CBTTickets.csv' using CSVLoader AS ( Type:chararray, Id:int, Summary:chararray, OwnedBy:chararray, Status:chararray, Prio‌​rity:chararray, Severity:chararray, ModifiedDate:datetime, PlannedFor:chararray, Time‌​Spent:int); B = FOREACH A GENERATE Type; C = LIMIT B 5; DUMP C; 。你的脚本应该是这样的:

func refreshView()
{
        dispatch_async(dispatch_get_main_queue()) { () -> Void in
            while (self.dataSource.writeSomethingTextLabel.isFirstResponder()) {
                //need to wait somehow for notification that it is not first responder anymore
            }
            self.tableView.reloadData()
        }
}

如果输入数据不适合您,请提供输入数据。

答案 1 :(得分:0)

您还没有提到healthcare_Sample_dataset1.csv的整个地址,这就是转储无法正常工作的原因。 通过写入该文件的完整路径来加载数据,而不是Dump将工作!!

答案 2 :(得分:0)

我认为您需要将所有字段加载为bytearray,然后删除第一行(即标题),因为它们与您要在这些字段上强加的数据类型不匹配。 要么 使用文本编辑器删除第一行并使用您自己的代码。