如何在 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()
如果您没有看到预期的数据库,这通常意味着以下两种情况之一:
hive-site.xml
不在 Spark 的类路径中(参见 Custom Hadoop/Hive Configuration in the Spark Configuration Guide)。
- 您在没有 Hive 支持的情况下初始化了 Spark(即在 1.6 的情况下使用
SQLContext
而不是 HiveContext
)。
我试图在 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()
如果您没有看到预期的数据库,这通常意味着以下两种情况之一:
hive-site.xml
不在 Spark 的类路径中(参见 Custom Hadoop/Hive Configuration in the Spark Configuration Guide)。- 您在没有 Hive 支持的情况下初始化了 Spark(即在 1.6 的情况下使用
SQLContext
而不是HiveContext
)。