[英]Hive external table not reading entirety of string from CSV source
相对于Hadoop世界而言,这是相对较新的,因此,如果这很容易的话,我深表歉意,但是我在SO或其他地方都没有找到任何相关内容。
简而言之,我在Hive中创建了一个外部表,该表从HDFS中的CSV文件文件夹中读取数据。 问题是,尽管第一列具有字符串数据类型,但它不会读取包含连字符的值的整个值。
例如:
配置单元表定义:
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
有任何想法吗? 提前致谢!
您正在使用哪个版本的Hive? 在Amazon EMR的Hive版本0.13.1上,我运行您的代码并获得以下内容
hive> CREATE EXTERNAL TABLE BG (
> `Id` string,
> `Someint` int
> )
> ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
> LOCATION '/tmp/example'
> TBLPROPERTIES ("skip.header.line.count"="1");
OK
Time taken: 0.598 seconds
hive> select * from BG;
OK
506253-A 10
506254-C 19
506233 8
Time taken: 0.714 seconds, Fetched: 3 row(s)
我已经讨论过从CSV文件自动生成Hive脚本,它会生成“具有所有String数据类型的CREATE语句,但是您可以根据以下ST帖子中的示例生成Hive脚本并根据需要更改为适当的类型”,
您可以参考“ Hadoop / Hive:从本地计算机上的.csv加载数据 ”中的Stackoverflow线程获取更多详细信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.