我遇到了一个问题:我无法使用spark-submit从Spark访问Hive表,而我可以使用pyspark shell。这是一段代码:
from pyspark.sql import SparkSession, HiveContext
spark = SparkSession \
.builder \
.appName("Python Spark SQL Hive integration example") \
.enableHiveSupport() \
.getOrCreate()
spark.sql("SHOW TABLES").show()
以下是pyspark(shell)的结果:
+--------+-------------+-----------+
|database| tableName|isTemporary|
+--------+-------------+-----------+
| default| table1| false|
| default| table2| false|
+--------+-------------+-----------+
以下是spark-submit的结果:
+--------+---------+-----------+
|database|tableName|isTemporary|
+--------+---------+-----------+
+--------+---------+-----------+
我尝试将spark conf目录添加到类路径中,使用hive-site.xml添加“--files”,我也尝试使用Hivecontext,并得到了相同的结果。我尝试使用scala:结果相同。
编辑:我没有连接到远程Hive服务器,而是连接到同一个
答案 0 :(得分:0)
找到解决方案: 我在.py文件中使用了一些UDF(用户定义的函数)。出于某种原因,我认为它正在创建一个上下文而我没有使用正确的上下文。现在工作正常。