在 AWS EMR 中运行 Spark sql 查询

问题描述 投票:0回答:1

我设置了一个 AWS EMR 集群。 我选择了emr-6.0.0。 选择的应用程序是:

Spark:Hadoop 3.2.1 YARN 上的 Spark 2.4.4 以及 Ganglia 3.7.2 和 Zeppelin 0.9.0-SNAPSHOT

之后我创建了一个 jupyter 笔记本并将其附加到集群。 问题是笔记本中的以下代码行会引发错误:

data_frame = spark.read.json("s3://transactions-bucket-demo/")
data_frame.createOrReplaceTempView("table")
spark.sql("SELECT * from table")

错误:

'java.lang.RuntimeException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient;'
Traceback (most recent call last):
  File "/usr/lib/spark/python/lib/pyspark.zip/pyspark/sql/session.py", line 767, in sql
    return DataFrame(self._jsparkSession.sql(sqlQuery), self._wrapped)
  File "/usr/lib/spark/python/lib/py4j-0.10.7-src.zip/py4j/java_gateway.py", line 1257, in __call__
    answer, self.gateway_client, self.target_id, self.name)
  File "/usr/lib/spark/python/lib/pyspark.zip/pyspark/sql/utils.py", line 69, in deco
    raise 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;'

如何解决笔记本中sql查询导致的这个错误?

amazon-web-services apache-spark pyspark hive amazon-emr
1个回答
0
投票

我也遇到了同样的问题,但是使用的是齐柏林飞艇笔记本。我通过更改飞艇解释器设置解决了这个问题,如下

zeppelin.spark.useHiveContext   false
© www.soinside.com 2019 - 2024. All rights reserved.