使用Pig Latin

时间:2018-01-31 21:19:15

标签: excel apache-pig hortonworks-sandbox

我有一个包含以下结构的千行的.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;

但是我从转储中获得了一个奇怪的结果,例如:

( � � � � � �,,,,)

感谢您的帮助

1 个答案:

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