2017-07-18 117 views
0

我面临一个问题:我无法使用spark-submit从Spark访问Hive表,而我可以使用pyspark外壳。这里是一段代码:从Spark访问Hive表

from pyspark.sql import SparkSession, HiveContext 

spark = SparkSession \ 
    .builder \ 
    .appName("Python Spark SQL Hive integration example") \ 
    .enableHiveSupport() \ 
    .getOrCreate() 

spark.sql("SHOW TABLES").show() 

这里与pyspark(壳)的结果:

+--------+-------------+-----------+ 
|database| tableName|isTemporary| 
+--------+-------------+-----------+ 
| default|  table1|  false| 
| default|  table2|  false| 
+--------+-------------+-----------+ 

这里是与结果火花提交:

+--------+---------+-----------+ 
|database|tableName|isTemporary| 
+--------+---------+-----------+ 
+--------+---------+-----------+ 

我试图将spark conf目录添加到类路径中,使用hive-site.xml添加“--files”,我也尝试了Hivecontext,并得到了相同的结果。我试着用scala:结果一样。

编辑:我没有连接到远程服务器蜂房,但在同一个

+1

可能重复[如何从火花连接到远程hive服务器](https://stackoverflow.com/questions/39997224/how-to-connect-to-remote-hive-server-from-spark) – Brad

回答

0

发现的解决方案: 我在我的.py文件使用一些UDF(用户定义函数)。出于某种原因,我认为这是创造一个背景,我没有使用正确的。现在它工作正常。