spark-submit yarn;客户端模式,SQLContext.sql returns 数据库未找到
Spark-submit yarn;client mode, SQLContext.sql returns database not found
我在控制台 yarn;client-mode 中使用了 ${SPARK_HOME}/bin/pyspark 并且 sqlContext 可以查询我的配置单元 table 但是当我使用 ${SPARK_HOME}/bin/spark-submit 在 yarn;client-mode 中,sqlContext 找不到 hive 数据库。
你知道我错过了什么参数或文件吗?
我如何使用 Spark 2.1.0 定义 sqlContext:
from pyspark import SparkConf, SparkContext
from pyspark.sql import SQLContext
conf = SparkConf()
sc = SparkContext(conf=conf)
sqlContext = SQLContext(sc)
我不确定为什么他们两个的行为不同,所以我做的是
要从 spark-submit 和 pyspark 获取 sc._conf.getAll(),我发现 spark-submit 的错误是 spark.sql.warehouse.dir、spark.sql.catalogImplementation。然而就像@Suresh 所建议的那样,这可能是由于我如何定义 sqlContext 的事实。
从 spark 2.0+ 开始,我们可以使用 SparkSession 来访问功能,而不是 SparkContext、SQLContext、HiveContext(在 2.0.0 中已弃用)。
http://spark.apache.org/docs/2.1.0/api/python/pyspark.sql.html#pyspark.sql.HiveContext
尝试将 SparkSession 与 enableHiveSupport 一起使用到 select 来自 ExternalCatalog 的配置单元,
from pyspark.sql import SparkSession
spark = SparkSession.builder.enableHiveSupport().getOrCreate()
使用 pyspark 控制台,创建的上下文是 hive-aware.In spark-submit,我们使用 builder.enableHiveSupport() 启用 hive,它设置 spark.sql.catalogImplementation=Hive [默认情况下它在-记忆]。
有关详细信息,请查看以下链接,
https://databricks.com/blog/2016/08/15/how-to-use-sparksession-in-apache-spark-2-0.html
https://jaceklaskowski.gitbooks.io/mastering-spark-sql/spark-sql-StaticSQLConf.html
感谢@Jacek Laskowski
我在控制台 yarn;client-mode 中使用了 ${SPARK_HOME}/bin/pyspark 并且 sqlContext 可以查询我的配置单元 table 但是当我使用 ${SPARK_HOME}/bin/spark-submit 在 yarn;client-mode 中,sqlContext 找不到 hive 数据库。
你知道我错过了什么参数或文件吗?
我如何使用 Spark 2.1.0 定义 sqlContext:
from pyspark import SparkConf, SparkContext
from pyspark.sql import SQLContext
conf = SparkConf()
sc = SparkContext(conf=conf)
sqlContext = SQLContext(sc)
我不确定为什么他们两个的行为不同,所以我做的是 要从 spark-submit 和 pyspark 获取 sc._conf.getAll(),我发现 spark-submit 的错误是 spark.sql.warehouse.dir、spark.sql.catalogImplementation。然而就像@Suresh 所建议的那样,这可能是由于我如何定义 sqlContext 的事实。
从 spark 2.0+ 开始,我们可以使用 SparkSession 来访问功能,而不是 SparkContext、SQLContext、HiveContext(在 2.0.0 中已弃用)。 http://spark.apache.org/docs/2.1.0/api/python/pyspark.sql.html#pyspark.sql.HiveContext
尝试将 SparkSession 与 enableHiveSupport 一起使用到 select 来自 ExternalCatalog 的配置单元,
from pyspark.sql import SparkSession
spark = SparkSession.builder.enableHiveSupport().getOrCreate()
使用 pyspark 控制台,创建的上下文是 hive-aware.In spark-submit,我们使用 builder.enableHiveSupport() 启用 hive,它设置 spark.sql.catalogImplementation=Hive [默认情况下它在-记忆]。 有关详细信息,请查看以下链接,
https://databricks.com/blog/2016/08/15/how-to-use-sparksession-in-apache-spark-2-0.html https://jaceklaskowski.gitbooks.io/mastering-spark-sql/spark-sql-StaticSQLConf.html
感谢@Jacek Laskowski