从Parquet表选择在配置单元中不返回任何内容

qeeaahzv  于 2021-06-28  发布在  Hive
关注(0)|答案(1)|浏览(349)

我只是按照这个创建了一个简单的Parquet文件。

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

Parquet文件将被创建,并且很好。
然后,我创建一个配置单元外部表,提供employee.parquet作为我的位置。请注意,这是正常的文件系统路径没有s3://或hdfs。
这是我的配置单元表创建查询:

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

它说ok,意思是表被创建了。它甚至出现在展台上;
但当我这么做的时候:

select * from employees;

它什么也不返回,只是一个ok。我相信我的employee.json中有3条记录如下:

{"age": 50, "name": "adi", "title": "sir"}
{"age": 60, "name": "jyoti", "title": "mam"}
{"age": 14, "name": "sumit", "title": "baalak"}

它被成功地生成为一个Parquet文件,我哪里出错了?
谢谢,

but5z9lq

but5z9lq1#

配置单元表中的列名应与json文件中的名称匹配,尽管列的顺序无关紧要-

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

相关问题