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