相对新的hadoop世界,所以道歉,如果这是一个不需要大脑,但我还没有找到任何关于这一点上,所以或其他地方。
简而言之,我在hive中创建了一个外部表,它从hdfs中的csv文件文件夹中读取数据。问题是,虽然第一列具有string数据类型,但它并没有读取包含连字符的值的整个值。
例如:
配置单元表定义:
CREATE EXTERNAL TABLE BG (
`Id` string,
`Someint` int,
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
LOCATION '/Path/To/Folder'
TBLPROPERTIES ("skip.header.line.count"="1");
示例数据:
506253-A,10
506254-C,19
506233,8
当我在hive中查询数据或在hcat中浏览时,我看到的是:
Id Someint
506253 10
506254 19
506233 8
有什么想法吗?提前谢谢!
2条答案
按热度按时间wf82jlnq1#
你用的是什么版本的Hive?在amazonemr的hiveversion0.13.1上,我运行您的代码并得到以下结果
vof42yt12#
我已经讨论过如何从csv文件自动生成配置单元脚本,它会生成“使用所有字符串数据类型创建语句,但您可以根据需要更新配置单元脚本并更改为正确的类型”,下面的文章中有一些示例,
有关详细信息,请参阅“hadoop/hive:loading data from.csv on a local machine”(hadoop/hive:从本地计算机上的.csv加载数据)中的stackoverflow线程。