我正在尝试在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|
+-------------+
答案 0 :(得分:0)
在Spark <2.0中,在SHOW DATABASES
中调用sql
是正确的方法。
在Spark 2.0或更高版本中,您应该使用pyspark.sql.catalog.Catalog.listDatabases
:
spark.catalog.listDatabases()
如果您没有看到预期的数据库,则通常意味着以下两种情况之一:
hive-site.xml
在Spark的类路径中不存在(请参见Custom Hadoop/Hive Configuration中的Spark Configuration Guide)。SQLContext
而不是HiveContext
)。