在sparkSQL中加载数据时,在Hive表中获取Null值

时间:2016-07-19 17:10:11

标签: hadoop apache-spark

将数据从文件加载到hive表时,将插入空值。

sqlCon.sql("create table hive_6(id Int,name String) partitioned by (date String) row format delimited fields terminated by ','");

sqlCon.sql("load data local inpath '/home/cloudera/file.txt' into table hive_6 partition(date='19July')");

sqlCon.sql("select * from hive_6").show()

+----+----+------+
|  id|name|  date|
+----+----+------+
|null|null|19July|
|null|null|19July|
|null|null|19July|
|null|null|19July|
|null|null|19July|
|null|null|19July|
|null|null|19July|
+----+----+------+

1 个答案:

答案 0 :(得分:3)

当我从镶木地板文件中读取数据时,我遇到了同样的问题。

hive查询将提供正确的数据,尽管spark-sql将显示空值。 原因是架构,你应该有以下 -

首先 - 您正在阅读的文件(txt / parquet)中的列名应全部为小写。

其次 - 您创建的配置单元表中的列名应与您正在阅读的文件的列名完全相同。

第三 - txt / parquet文件和hive表中的数据类型应该相同。