1

我正在使用 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;

请帮我解决这个问题。

谢谢并恭祝安康!!!

4

3 回答 3

0

从您的脚本中,我可以看到您正在使用CSV File. 如果您正在使用,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;

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

于 2015-05-13T09:47:36.063 回答
0

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

于 2018-02-27T12:40:16.333 回答
0

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

于 2017-08-10T20:14:00.437 回答