我在 hive 里有张table
db.table_name
当我在配置单元中运行以下命令时,我会得到结果
SELECT * FROM db.table_name;
当我在一个Spark壳里运行以下程序时
spark.read.table("db.table_name").show
什么也看不出来。同样地
sql("SELECT * FROM db.table_name").show
也没有显示任何内容。在显示之前选择任意列也不会显示任何内容。执行计数表示表有0行。
对同一数据库中的其他表运行相同的查询。
spark版本:2.2.0.1
该表是使用
table.write.mode(SaveMode.Overwrite).saveAsTable("db.table_name")
如果我直接用Parquet文件来读取文件,它就会工作。
spark.read.parquet(<path-to-files>).show
编辑:我目前正在使用一种变通方法,通过描述表和获取位置,并使用spark.read.parquet。
2条答案
按热度按时间aij0ehis1#
你刷新元数据表了吗?可能需要刷新表以访问新数据。
3gtaxfhh2#
我用电脑解决了这个问题
它将结果存储在文本文件中。可能有一些不兼容的HiveParquet。
我还发现了一个cloudera报告(cdh发行说明):他们建议手动创建hive表,然后从临时表或通过查询加载数据。