0

我有一个 .xls 文件,其中有一千行,结构如下:

id   | number | date   | description

1232 | 41515  | 3/9/16 | amazing

我正在尝试使用 Pig 和以下脚本加载它,跳过第一个标题行并且没有日期列(所以只有 id、数字、描述,我还没有找到如何):

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;

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

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

谢谢你的帮助

4

1 回答 1

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;
于 2018-02-01T00:09:46.423 回答