使用 Pig Latin 加载 .xls 文件
Loading .xls file with Pig Latin
我有一个具有以下结构的千行 .xls 文件:
id | number | date | description
1232 | 41515 | 3/9/16 | amazing
我试图加载它跳过第一个 header 行和 没有日期列 (所以只有 id,编号,描述,我还没有找到如何)通过以下脚本使用 Pig:
REGISTER /usr/hdp/current/pig-client/lib/piggybank.jar
data = LOAD '/user/maria_dev/file.xls' using org.apache.pig.piggybank.storage.CSVExcelStorage(',', 'NO_MULTILINE', 'NOCHANGE', 'SKIP_INPUT_HEADER')
as (Id:chararray,case_number:chararray,date:chararray,block:chararray,iucr:chararray);
data_sample = LIMIT data 10;
DUMP data_sample;
但我从转储中得到一个奇怪的结果,其中包含以下行:
( � � � � � �,,,,)
感谢您的帮助
没有直接的方式将 .xls 文件加载到 hdfs 中,使用 csvexcelstorage.You 必须将 .xls 文件保存为 .csv 文件,然后使用 csvexcelstorage 加载它。
另请注意,您有 4 个字段,您的模式有 5 个字段。
data = LOAD '/user/maria_dev/file.csv' using org.apache.pig.piggybank.storage.CSVExcelStorage(',', 'NO_MULTILINE', 'NOCHANGE', 'SKIP_INPUT_HEADER') as (Id:chararray,case_number:chararray,date:chararray,desc:chararray);
data_sample = LIMIT data 10;
DUMP data_sample;
我有一个具有以下结构的千行 .xls 文件:
id | number | date | description
1232 | 41515 | 3/9/16 | amazing
我试图加载它跳过第一个 header 行和 没有日期列 (所以只有 id,编号,描述,我还没有找到如何)通过以下脚本使用 Pig:
REGISTER /usr/hdp/current/pig-client/lib/piggybank.jar
data = LOAD '/user/maria_dev/file.xls' using org.apache.pig.piggybank.storage.CSVExcelStorage(',', 'NO_MULTILINE', 'NOCHANGE', 'SKIP_INPUT_HEADER')
as (Id:chararray,case_number:chararray,date:chararray,block:chararray,iucr:chararray);
data_sample = LIMIT data 10;
DUMP data_sample;
但我从转储中得到一个奇怪的结果,其中包含以下行:
( � � � � � �,,,,)
感谢您的帮助
没有直接的方式将 .xls 文件加载到 hdfs 中,使用 csvexcelstorage.You 必须将 .xls 文件保存为 .csv 文件,然后使用 csvexcelstorage 加载它。
另请注意,您有 4 个字段,您的模式有 5 个字段。
data = LOAD '/user/maria_dev/file.csv' using org.apache.pig.piggybank.storage.CSVExcelStorage(',', 'NO_MULTILINE', 'NOCHANGE', 'SKIP_INPUT_HEADER') as (Id:chararray,case_number:chararray,date:chararray,desc:chararray);
data_sample = LIMIT data 10;
DUMP data_sample;