【发布时间】:2018-08-14 07:54:18
【问题描述】:
我在蜂巢中有一张桌子
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")
如果我直接使用 parquet 文件读取文件,它就可以工作。
spark.read.parquet(<path-to-files>).show
编辑: 我目前正在通过描述表格并获取位置并使用 spark.read.parquet 来使用解决方法。
【问题讨论】:
-
您是在使用 HiveContext(如果是 Spark 1.6)还是打电话给
.enableHiveSupport()(如果是 Spark 2.x)? -
使用 spark2-shell,我相信它可以在设置会话时启用 hive 支持。
-
日志可用吗?你有没有在那里寻找可能的错误/警告?
-
由于它是客户端模式,所有错误/警告都会记录到 shell。不会显示任何日志。
-
也许您可以从 Spark UI 或资源管理器获取日志?
标签: apache-spark hive apache-spark-sql