如何在 PySpark 1.6 中使用 HiveContext 列出所有数据库

How to list All Databases using HiveContext in PySpark 1.6

我试图在 Spark 1.6 中使用 HiveContext 列出所有数据库,但它只给我默认数据库。

from pyspark import SparkContext
from pyspark.sql import SQLContext
sc = SparkContext.getOrCreate()
from pyspark.sql import HiveContext
sqlContext = HiveContext(sc)
sqlContext.sql("SHOW DATABASES").show()
+-------------+
|       result|
+-------------+
|      default|
+-------------+

sql 中调用 SHOW DATABASES 是 Spark < 2.0 中的正确方法。

在 Spark 2.0 或更高版本中你应该使用 pyspark.sql.catalog.Catalog.listDatabases:

spark.catalog.listDatabases()

如果您没有看到预期的数据库,这通常意味着以下两种情况之一: