如何从具有分号作为分隔符的文件中加载PIG中的数据

时间:2017-03-20 11:17:13

标签: hadoop apache-pig

我使用以下命令加载数据

A = LOAD '*Myfilepath*' USING org.apache.pig.piggybank.storage.CSVExcelStorage(';', 'YES_MULTILINE', 'NOCHANGE', 'SKIP_INPUT_HEADER') AS (a:chararray, b:int, c:chararray);

但它不起作用。

2 个答案:

答案 0 :(得分:0)

请在代码中更改以下内容

发件人:使用org.apache.pig.piggybank.storage.CSVExcelStorage(';','YES_MULTILINE','NOCHANGE','SKIP_INPUT_HEADER')

TO:使用org.apache.pig.piggybank.storage.CSVExcelStorage(',','YES_MULTILINE','NOCHANGE','SKIP_INPUT_HEADER')

csv是一个“,”逗号分隔文件而不是分号“;”分离文件

希望这有助于!!! ....

答案 1 :(得分:0)

如果它是一个没有倒置逗号打嗝的干净文件,这很好:

A = LOAD '*Myfilepath*' USING PigStorage(';') AS (a:chararray, b:int, c:chararray);

在您的情况下,我认为您在使用其属性之前尚未注册piggybank jar!下载JAR并注册如下:

REGISTER '/export/home/piggybank.jar';
A = LOAD 'sam3.txt' USING org.apache.pig.piggybank.storage.CSVExcelStorage(';', 'YES_MULTILINE', 'NOCHANGE', 'SKIP_INPUT_HEADER') AS (a:chararray, b:int, c:chararray);

注意:当您使用LOAD '*Myfilepath*'时,会选择该目录中的所有文件!在这种情况下,'SKIP_INPUT_HEADER'无效!