【发布时间】:2018-10-03 17:21:08
【问题描述】:
我是 Hadoop/Spark/Hive 的新手!
我创建了一个在本地运行的单节点 linux (Ubuntu 18.04.1 LTS) VM,其中包含以下内容; Hadoop 3.1.0; Spark:Spark 2.3.1,Hive:Hive-3.0.0
我的 Hive 使用标准的 Derby DB,我可以通过终端访问 hive 并创建数据库、表,然后很好地查询这些表。我的 metastore_db 位于 ~/hivemetastore/metastore_db
我还创建了以下内容:
hadoop fs -mkdir -p /user/hive/warehouse
hadoop fs -mkdir -p /tmp/hive
(注意——我在 $HIVE_HOME/conf 或 $SPARK_HOME/conf 下没有任何 hive-site.xml 文件)
但是,当我尝试从 pyspark(通过终端)读取配置单元表时,出现错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/spark-2.3.1-bin-hadoop2.7/python/pyspark/sql/session.py", line 710, in sql return DataFrame(self._jsparkSession.sql(sqlQuery), self._wrapped)
File "/usr/local/spark-2.3.1-bin-hadoop2.7/python/lib/py4j-0.10.7-src.zip/py4j/java_gateway.py", line 1257, in __call__
File "/usr/local/spark-2.3.1-bin-hadoop2.7/python/pyspark/sql/utils.py", line 69, in decoraise AnalysisException(s.split(': ', 1)[1], stackTrace)
pyspark.sql.utils.AnalysisException: 'java.lang.RuntimeException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient;'
我用来从 pyspark 访问 hive 的代码是:
from pyspark.sql import SparkSession
spark = SparkSession.builder.enableHiveSupport().getOrCreate()
spark.sql('show databases').show()
【问题讨论】:
标签: apache-spark hadoop hive pyspark