我已经成功地将一个250000条记录的csv文件加载到hdfs中,并对它执行了一些etl功能,比如删除字符串中除0-9、a-z和a-z以外的任何字符,这样它就很好而且干净了。
我已经将这个etl的输出保存到hdfs中,以便加载到hive中。在配置单元中,我为表创建了模式,并为每列设置了适当的数据类型。
create external table pigOutputHive (
id string,
Score int,
ViewCount int,
OwnerUserId string,
Body string,
Rank int
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
location '/user/admin/PigOutputETL';
当我对数据运行简单查询时,例如:
SELECT * FROM pigoutputhive LIMIT 100000;
数据看起来应该是这样的,当我把它下载到我的本地机器上并以csv的形式在excel中查看时,它看起来也不错。
当我尝试在同一个表上运行以下查询时,即使对于字符串列,每个字段都以整数形式返回。请参见下面的屏幕截图。
有人能看出我错在哪里吗?在最初的250000行中,在特定字段中有一些空格,比如owneruserid,我需要告诉pig或hive如何处理这些吗?
暂无答案!
目前还没有任何答案,快来回答吧!