从镶木地板表中选择在蜂巢中不返回任何内容

时间:2016-07-28 04:52:28

标签: hive external parquet

我只是按照这个来创建一个简单的镶木地板文件。

Column1 |     rawvalue | to_be_updated_value|   
check   |     abc      | new    
status  |     3        | 3333   

镶木地板文件被创建并且很好。

然后,我创建一个hive外部表,提供此employee.parquet作为我的位置。请注意这是正常的文件sys path no s3://或hdfs。

这是我的hive表创建查询:

id |    check     | status     
1  |    **new**   | 1             
2  |    def       | **3333**      

它说好,意味着表已创建。它甚至出现在表格中;

但是当我这样做时:

Scala> val sqlContext = new org.apache.spark.sql.SQLContext(sc)
Scala> val employee = sqlContext.read.json(“employee”)
Scala> employee.write.parquet(“employee.parquet”)

它什么都不返回,只是一个OK。我相信我的employee.json中有3条记录是这样的:

create external table employees (a String, b String, c Int) stored as PARQUET location '/Users/Sumit/Documents/Repos/misc_codes/employees.parquet';

它已成功生成为镶木地板文件,我哪里出错了?

谢谢,

1 个答案:

答案 0 :(得分:0)

hive表中的列名应该与json文件中的名称匹配,尽管列的顺序并不重要 -

create external table employees (name String, title String, age Int) stored as PARQUET location '/Users/Sumit/Documents/Repos/misc_codes/employees.parquet';