pyspark 尝试在数据库Apache表中查找变量失败-为什么?

g6ll5ycj  于 2023-10-15  发布在  Spark
关注(0)|答案(1)|浏览(119)

我正在运行Apache Spark 3.3.0,Scala 2.12,并得到此错误:

org.apache.spark.SparkException:无法获取db default的表

...在尝试运行此代码时:

databaseName = "database"
  desiredColumn = "work_unit_code"
  database = spark.sql(f"show tables in {databaseName} ").collect()
  display(database)

  tablenames = []
  for row in database:
         cols = spark.table(row.tableName).columns
         **listColumns= spark.table(row.tableName).columns**
         if desiredColumn in listColumns:
              tablenames.append(row.tableName)

有人知道发生了什么吗?先谢了。
尝试聚合特定数据库表中的总计列,然后循环访问列以查看其中是否存在特定变量。

6ojccjat

6ojccjat1#

这是因为tableName列只包含表名,而不包含数据库名。
spark.table(row.tableName)更改为spark.table(f"{databaseName}.{row.tableName})

相关问题