Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
py4j.protocol.Py4JError:org.apache.spark.api.PythonUtils.getEncryptionEnabled在JVM中不存在_Python_Python 3.x_Pyspark - Fatal编程技术网

py4j.protocol.Py4JError:org.apache.spark.api.PythonUtils.getEncryptionEnabled在JVM中不存在

py4j.protocol.Py4JError:org.apache.spark.api.PythonUtils.getEncryptionEnabled在JVM中不存在,python,python-3.x,pyspark,Python,Python 3.x,Pyspark,我目前使用的是JRE:1.8.0µ、Python:3.6.4、spark:2.3.2 我正在尝试用Python执行以下代码: from pyspark.sql import SparkSession spark = SparkSession.builder.appName('Basics').getOrCreate() 此操作失败,错误如下: spark=SparkSession.builder.appName('Basics').getOrCreate() 回溯(最近一次呼叫最后一次):

我目前使用的是JRE:1.8.0µ、Python:3.6.4、spark:2.3.2

我正在尝试用Python执行以下代码:

from pyspark.sql import SparkSession

spark = SparkSession.builder.appName('Basics').getOrCreate()
此操作失败,错误如下:

spark=SparkSession.builder.appName('Basics').getOrCreate() 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 文件“C:\Tools\Anaconda3\lib\site packages\pyspark\sql\session.py”,第173行,在getOrCreate中 sc=SparkContext.getOrCreate(sparkConf) 文件“C:\Tools\Anaconda3\lib\site packages\pyspark\context.py”,第349行,在getOrCreate中 SparkContext(conf=conf或SparkConf()) 文件“C:\Tools\Anaconda3\lib\site packages\pyspark\context.py”,第118行,在init 形态、jsc、探查器(cls) 文件“C:\Tools\Anaconda3\lib\site packages\pyspark\context.py”,第195行,在\u do\u init中 self.\u encryption\u enabled=self.\u jvm.PythonUtils.getEncryptionEnabled(self.\u jsc) 文件“C:\Tools\Anaconda3\lib\site packages\py4j\java_gateway.py”,第1487行,位于getattr “{0}.{1}在JVM中不存在”。格式(self.\u fqn,name)) py4j.protocol.Py4JError:org.apache.spark.api.PythonUtils.getEncryptionEnabled在JVM中不存在

有人知道什么是潜在的问题吗

感谢您的帮助或反馈。谢谢大家!

如上所述@,添加
PYTHONPATH
环境变量(值为:

%SPARK\u HOME%\python;%SPARK\u HOME%\python\lib\py4j--src.zip:%PYTHONPATH%

-只需检查您的
spark/python/lib
文件夹中的
py4j
版本)有助于解决此问题

如果使用pycharm -下载spark 2.4.4
-设置/项目结构/addcontent root/add py4j.0.10.8.1.zip
spark.2.4.4/python/lib中的ve pyspark.zip在Windows上也有同样的问题,我发现我的python的py4jpyspark版本与spark的预期版本不同。
通过将zip中的python模块:py4j-0.10.8.1-src.zippyspark.zip(位于spark-3.0.0-preview2-bin-hadoop2.7\python\lib中)复制到C:\Anaconda3\lib\site包中来解决这个问题。
错误是-我打开了普通的jupyter笔记本。

始终打开Anaconda提示符->键入“pyspark”->它将自动为您打开Jupyter笔记本。
之后,您将不会出现此错误。

使用findspark有望解决此问题:

安装findspark

$pip安装findspark

在您的代码中使用:

import findspark
findspark.init() 

您可以选择在上面的
init
方法中指定“/path/to/spark”
findspark.init(“/path/to/spark”)
1。检查您的环境变量

由于未正确设置环境变量,您将看到“py4j.protocol.Py4JError:org.apache.spark.api.PythonUtils.getEncryptionEnabled在JVM中不存在”

检查是否在.bashrc文件上正确设置了环境变量。对于Unix和Mac,变量应该如下所示。您可以在主路径上找到.bashrc文件

注意:不要复制和粘贴下面的行,因为您的Spark版本可能与下面提到的版本不同

export SPARK_HOME=/opt/spark-3.0.0-bin-hadoop2.7
export PYTHONPATH=$SPARK_HOME/python:$SPARK_HOME/python/lib/py4j-0.10.9-src.zip:$PYTHONPATH
export PATH=$SPARK_HOME/bin:$SPARK_HOME/python:$PATH
如果您在windows上运行,请打开环境变量窗口,然后在下面添加/更新

SPARK_HOME  =>  /opt/spark-3.0.0-bin-hadoop2.7
PYTHONPATH  =>  %SPARK_HOME%/python;%SPARK_HOME%/python/lib/py4j-0.10.9-src.zip;%PYTHONPATH%
PATH  => %SPARK_HOME%/bin;%SPARK_HOME%/python;%PATH%
设置环境变量后,重新启动工具或命令提示符

2。使用findspark

通过运行$pip安装findspark来安装findspark包,并将以下行添加到pyspark程序中

import findspark
findspark.init() 
# you can also pass spark home path to init() method like below
# findspark.init("/path/to/spark")
3。将pyspark和py4j模块复制到Anaconda lib

有时在更改/升级Spark版本后,由于anaconda lib上的pyspark版本和pyspark版本不兼容,您可能会遇到此错误。为了纠正它

注意:从zip文件内部复制指定的文件夹,并确保已按开头所述正确设置环境变量

从以下位置复制py4j文件夹:

C:\apps\opt\spark-3.0.0-bin-hadoop2.7\python\lib\py4j-0.10.9-src.zip\
C:\apps\opt\spark-3.0.0-bin-hadoop2.7\python\lib\pyspark.zip\

并从以下位置复制pyspark文件夹:

C:\apps\opt\spark-3.0.0-bin-hadoop2.7\python\lib\py4j-0.10.9-src.zip\
C:\apps\opt\spark-3.0.0-bin-hadoop2.7\python\lib\pyspark.zip\

有时,您可能需要重新启动系统以影响eh环境变量


归功于

我也有同样的问题。在我使用spark 2.4.6的情况下,安装pyspark 2.4.6或2.4.x(与spark相同的版本)修复了这个问题,因为pyspark 3.0.1(
pip install pyspark
将安装最新版本)提出了这个问题。

您只需要安装pyspark的旧版本。这个版本的工作原理是“pip install pyspark==2.4.7”

如果您更新了pyspark或spark 如果像我一样,问题发生在您更新了其中一个之后,而您不知道Pyspark和Spark版本需要匹配,正如Pyspark PyPi repo所说:

注意:如果您将其用于Spark单机群集,则必须确保版本(包括次要版本)匹配,否则您可能会遇到异常错误

因此,升级/降级Pyspark/Spark以匹配其版本以解决问题


要升级Spark,请执行以下操作:

如果您安装了pip pyspark 3.1,并且您的本地Spark为2.4(我指的是版本不兼容),则可能会发生这种情况 在我的例子中,为了克服这个问题,我卸载了spark 3.1并切换到pip安装pyspark 2.4


我在这里的建议是检查版本不兼容问题以及这里的其他答案。

你可以试试这个:它对我有效。我们是否确定应该在
%SPARK\u HOME%\python
后面加一个分号?我遵循了上面的相同步骤,它对我有效。只要确保你的spark版本是downlo