用pig拉丁语加载.xls文件

frebpwbc  于 2021-06-24  发布在  Pig
关注(0)|答案(1)|浏览(336)

我有一个.xls文件,有1000行,结构如下:

id   | number | date   | description

1232 | 41515  | 3/9/16 | amazing

我正在尝试通过以下脚本使用pig来加载它,跳过第一个标题行,不带日期列(所以只有id、number、description,我还没有找到如何加载):

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;

但是我从垃圾堆里得到了一个奇怪的结果,比如:

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

谢谢你的帮助

qybjjes1

qybjjes11#

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

相关问题