我有一个包含以下结构的千行的.xls文件:
id | number | date | description
1232 | 41515 | 3/9/16 | amazing
我正在尝试加载它跳过第一个标题行和没有日期列(所以只是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;
但是我从转储中获得了一个奇怪的结果,例如:
( � � � � � �,,,,)
感谢您的帮助
答案 0 :(得分:0)
没有使用csvexcelstorage将.xls文件加载到hdfs的直接方法。您必须将.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;