我正在运行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)
有人知道发生了什么吗?先谢了。
尝试聚合特定数据库表中的总计列,然后循环访问列以查看其中是否存在特定变量。
1条答案
按热度按时间6ojccjat1#
这是因为
tableName
列只包含表名,而不包含数据库名。将
spark.table(row.tableName)
更改为spark.table(f"{databaseName}.{row.tableName})