我在hive中有一张表
db.table_name
当我在hive中运行以下内容时,我会得到结果
SELECT * FROM db.table_name;
当我在spark-shell中运行以下内容时
spark.read.table("db.table_name").show
它没有显示任何内容。同样
sql("SELECT * FROM db.table_name").show
也没有显示。在节目之前选择任意列也不显示任何内容。执行计数表明该表有0行。
运行相同的查询将对同一数据库中的其他表起作用。
Spark版本:2.2.0.cloudera1
该表是使用
创建的table.write.mode(SaveMode.Overwrite).saveAsTable("db.table_name")
如果我直接使用镶木地板文件阅读文件,那就可以了。
spark.read.parquet(<path-to-files>).show
编辑: 我目前正在使用一种解决方法,描述表并获取位置并使用spark.read.parquet。
答案 0 :(得分:0)
您是否刷新了元数据表?也许你需要刷新表来访问新数据。
pd.DataFrame.resample("W").ffill()
答案 1 :(得分:0)
我通过使用
解决了问题query_result.write.mode(SaveMode.Overwrite).format("hive").saveAsTable("table")
将结果存储在文本文件中。 Hive实木复合地板可能不兼容。
我还发现了有关它的Cloudera报告(CDH Release Notes):他们建议手动创建Hive表,然后从临时表或通过查询加载数据。