Error code 모음/7. Dev Tools errors

[PySpark Error] py4j.protocol.Py4JError: org.apache.spark.api.python.PythonUtils.getEncryptionEnabled does not exist in the JVM

쟈누이 2021. 6. 27. 19:49
반응형

 

 

1. 에러 원인


해당 에러는 pyspark 를 주피터에서 사용할 때, 주피터에서 PYTHONPATH 를 찾지 못해서 발생하는 에러로 추정이 된다. 자세한 사항은 알아내진 못했다. 

 

 

 

2. 해결 방법


1) PYTHONPATH 를 환경변수 설정에서 만들어 준다(윈도우 버전)

# 이미 스파크는 설치한 상태라고 가정한다
SPARK_HOME  =>  /opt/spark-3.0.0-bin-hadoop2.7
PATH  => %SPARK_HOME%/bin;%SPARK_HOME%/python;%PATH%

# 아래 PYTHONPATH 만 만들어주면 된다
PYTHONPATH  =>  %SPARK_HOME%/python;%SPARK_HOME%/python/lib/py4j-0.10.9-src.zip;%PYTHONPATH%

 

 

 

2) findspark 를 임포트한다

나의 경우에는 findspark 를 pip 로 설치한 후에, 먼저 임포트를 시켜주었다.\

그리고 pyspark 를 키고 사용하면 된다

 

 

3) pyspark and py4j 모듈을 anaconda Lib 로 이동

해당 경우에는 해줘야되는지는모르겠지만 나의 경우에는 혹시라도 해서 진행을 해주었다 그냥 py4j 가 깔려있는 경로의 py4j zip 파일을 anaconda lib 에 폴더채로 풀어주면 되는것 같다.

 

# py4j 폴더로 부터 
C:\apps\opt\spark-3.0.0-bin-hadoop2.7\python\lib\py4j-0.10.9-src.zip\

# anaconda lib 으로 옮긴다
C:\Programdata\anaconda3\Lib\site-packages\.

 

 

pyspark 도 동일하게 진행한다

# py4j 폴더로 부터 
C:\apps\opt\spark-3.0.0-bin-hadoop2.7\python\lib\pyspark.zip\

# anaconda lib 으로 옮긴다
C:\Programdata\anaconda3\Lib\site-packages\

 

4) 그리고 시스템을 재 실행한 다음에 주피터를 키고 pyspark 를 실행시키면 잘되는 것 같다

 

 

 

 

3. 참고 링크


https://stackoverflow.com/questions/53217767/py4j-protocol-py4jerror-org-apache-spark-api-python-pythonutils-getencryptionen

 

py4j.protocol.Py4JError: org.apache.spark.api.python.PythonUtils.getEncryptionEnabled does not exist in the JVM

I am currently on JRE: 1.8.0_181, Python: 3.6.4, spark: 2.3.2 I am trying to execute following code in Python: from pyspark.sql import SparkSession spark = SparkSession.builder.appName('Basics').

stackoverflow.com

 

반응형