转储不起作用

2ic8powd  于 2021-06-02  发布在  Hadoop
关注(0)|答案(3)|浏览(585)

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

请帮我解决这个问题。
谢谢和问候!!!

os8fio9y

os8fio9y1#

您没有提到healthcare\u sample\u dataset1.csv的整个地址,这就是dump无法正常工作的原因。通过写入文件的完整路径来加载数据,这样转储就可以了!!

x6h2sr28

x6h2sr282#

从你的剧本我可以看出你在用 CSV File . 如果你和 CSV File 那你应该用 CSVLoader() 在你的Pig剧本里。你的剧本应该是这样的:

--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;

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

9fkzdhlc

9fkzdhlc3#

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

相关问题