未能在org.apache.spark.sql.sparksession上执行“table”

6uxekuva  于 2021-05-19  发布在  Spark
关注(0)|答案(1)|浏览(570)

我有一个spark+hive应用程序。
很好用。但在某个时刻,我不得不创造另一个Hive环境。
所以我跑了 show create table ... 并重新创建了相同的视图(具有基础表)。并添加了一些数据。
我可以从中查询数据 hive cli 等等。
但每当我运行我的应用程序时,它就会失败

ERROR Failed to execute 'table' on 'org.apache.spark.sql.SparkSession' with args=([Type=java.lang.String, Value: <view name>])

我相信它是指行代码时,我可以 sparkSession.table(<view-name>) 可以执行哪些步骤来解决此类问题?
升级版
会话声明(明确尝试在没有此配置的情况下创建会话)

.Config("spark.hadoop.google.cloud.auth.service.account.enable", "true")
.Config("spark.hadoop.google.cloud.auth.service.account.json.keyfile", "some.file")
.Config("fs.gs.impl", "com.google.cloud.hadoop.fs.gcs.GoogleHadoopFileSystem")
.Config("spark.sql.debug.maxToStringFields", int64 2048)
.Config("spark.debug.maxToStringFields", int64 2048)
s71maibg

s71maibg1#

也许有点琐碎,但在解决此类问题时,确实要尝试通过最少的设置来找到问题的根源:
我通常从开始 spark-shell .
检查是否可以运行 spark.sql("SHOW DATABASES").show(20, false) . 如果失败了,可能是你的Hive配置有问题。
试试看你能不能跑 spark.table("your_table") . 如果不是,它可能会给你一个更清晰的错误(例如 Table or view not found: ... ).
如果上述所有方法都有效,请尝试剥离应用程序,使其仅能做到这一点 spark.table ,在你的 spark-shell 在那个时候。如果这突然不起作用,那可能与 SparkSession 在应用程序中创建。
如果可以的话,试着一段一段地取消对代码的注解,直到您返回到原始代码,以便更好地确定它失败的地方。

相关问题