Python Spark 3.0.0创建SparkSession时出错:pyspark.sql.utils.IllegalArgumentException:<;异常str()失败>;

Python Spark 3.0.0创建SparkSession时出错:pyspark.sql.utils.IllegalArgumentException:<;异常str()失败>;,python,apache-spark,pyspark,hive,Python,Apache Spark,Pyspark,Hive,我正试图用Hadoop 2.7.3和Hive 1.2.1为我的纱线集群构建Spark 3.0.0。我下载了源代码并使用 /dev/make-distribution.sh--命名定制火花--pip--r--tgz--Psparkr--Phive-1.2--Phadoop-2.7--Pyarn 我们正在生产中运行Spark 2.4.0,因此我从中复制了hive-site.xml、Spark-env.sh和Spark-defaults.conf 当我尝试在普通Python REPL中创建SparkS

我正试图用Hadoop 2.7.3和Hive 1.2.1为我的纱线集群构建Spark 3.0.0。我下载了源代码并使用

/dev/make-distribution.sh--命名定制火花--pip--r--tgz--Psparkr--Phive-1.2--Phadoop-2.7--Pyarn

我们正在生产中运行Spark 2.4.0,因此我从中复制了hive-site.xml、Spark-env.sh和Spark-defaults.conf

当我尝试在普通Python REPL中创建SparkSession时,会出现以下非信息性错误。我如何调试这个?我可以运行sparkshell,并通过配置单元访问获得scala提示符,看起来没有错误

Python 3.6.3 (default, Apr 10 2018, 16:07:04)
[GCC 4.8.3 20140911 (Red Hat 4.8.3-9)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> import sys
>>> os.environ['SPARK_HOME'] = '/home/pmccarthy/custom-spark-3'
>>> sys.path.insert(0,os.path.join(os.environ['SPARK_HOME'],'python','lib','py4j-src.zip'))
>>> sys.path.append(os.path.join(os.environ['SPARK_HOME'],'python'))
>>> import pyspark
>>> from pyspark.sql import SparkSession
>>> spark = (SparkSession.builder.enableHiveSupport().config('spark.master','local').getOrCreate())
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/home/pmccarthy/custom-spark-3/python/pyspark/sql/session.py”,第191行,在getOrCreate中
session._jsparkSession.sessionState().conf().setConfString(键,值)
文件“/home/pmccarthy/custom-spark-3/python/lib/py4j src.zip/py4j/java_gateway.py”,第1305行,在__
文件“/home/pmccarthy/custom-spark-3/python/pyspark/sql/utils.py”,第137行,deco格式
从(已转换的)中提升
文件“”,第3行,从
pyspark.sql.utils.IllegalArgumentException:

我还遇到了
pyspark.sql.utils.IllegalArgumentException:
。这是由于我使用Spark 3中删除的选项(
Spark.sql.legacy.allowCreatingManagedTableUsingNonemptyLocation
)造成的。

您的某些配置似乎无法识别<代码>会话。_jsparkSession.sessionState().conf().setConfString(键,值)经过一些测试后,似乎是
enableHiveSupport()
导致了崩溃-如果我在没有它的情况下构建SparkSession,它就会正常启动。尽管如此,这仍然是一个谜,因为无论我的hive-site.xml是否有我的配置,还是为空,它都会以同样的方式崩溃。为了获得更好的错误信息,我们改为
raise e
,谢谢这很有帮助。似乎
-Phive-1.2
但不包括
-Phive-thriftserver
阻止了一些必要的jar的构建。这样做之后,我仍然没有得到完全的支持,但能够通过
.config('spark.sql.hive.metastore.version','1.2.1')
.config('spark.sql.hive.metastore.jars','maven')
连接到我的metastore。但build标志似乎仍然暗示它应该为Hive1.2生成一个工作安装。
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/pmccarthy/custom-spark-3/python/pyspark/sql/session.py", line 191, in getOrCreate
    session._jsparkSession.sessionState().conf().setConfString(key, value)
  File "/home/pmccarthy/custom-spark-3/python/lib/py4j-src.zip/py4j/java_gateway.py", line 1305, in __call__
  File "/home/pmccarthy/custom-spark-3/python/pyspark/sql/utils.py", line 137, in deco
    raise_from(converted)
  File "<string>", line 3, in raise_from
pyspark.sql.utils.IllegalArgumentException: <exception str() failed>