我正在使用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;
请帮我解决这个问题。
谢谢和问候!!!
答案 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,
Priority:chararray,
Severity:chararray,
ModifiedDate:datetime,
PlannedFor:chararray,
TimeSpent: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,然后删除第一行(即标题),因为它们与您要在这些字段上强加的数据类型不匹配。 要么 使用文本编辑器删除第一行并使用您自己的代码。