😆 Big Data/- Docker

[dockerfile] ModuleNotFoundError: No module named 'py4j' & pyspark 환경변수 작성하기

또방91 2022. 5. 23. 16:30
728x90

 

 

 

 

 

                                               py4j 오류 해결하기                                            

 

 

 

 

먼저 -!! 

 

🍭1) 우분투 18.04에서 기본 제공하는 python ver 3.6.9 말고 파이썬 기본값 ver을 3.8.5로 설정하였다!

( 즉, python -V 으로 확인했을 때 3.8.5로 나오는 걸 말한다!)

* python 기본값 ver설정 방법이 궁금하다면 아래글 참고해주세요~

2022.05.22 - [😆 Big Data/- Docker] - [Dockerfile] 우분투 18.04 & 파이썬 3.8 설치 & python 기본값 변경하기

 

🍭2) pyspark 파이썬 기본ver은 python과 같은 ver으로 설정했다,

 

 

 

 

 

 

ModuleNotFoundError: No module named 'py4j

3.8.5로 설정해줬지만....... 아래와 같은 오류가!!!!! 뜨아..........ㅠㅠ 모지모지??

 

위와 같은 오류를 해결하기 위해서 2가지를 손봐줘야한다.

 

 

 

💜    첫번째 !!   py4j 패키지 설치하기    

# 설치한 spark 각 ver에서 요구하는 py4j를 확인 후 설치하기
pip install py4j==0.10.9

 

https://spark.apache.org/docs/3.1.2/api/python/getting_started/install.html

위 링크 속 공식 홈페이지에 들어가서 보면 py4j ver은 0.10.9을 요구한다.

 

 

💜    두번째!!   python path 설정하기    

# py4j가 설치되어있는 위치를 확인 후 pythonpath 환경변수 추가하기

ENV PYTHONPATH=$SPARK_HOME/python/:$SPARK_HOME/python/lib/py4j-0.10.9-src.zip:$PYTHONPATH

 

 

 

 

 

💜    더 나아가 !    

 

PySpark란 

 Apache Spark는 Scala 프로그래밍 언어로 작성되었습니다 PySpark는 Apache Spark와 Python의 공동 작업을 지원하기 위해 릴리스되었으며, 사실상 Spark용 Python API의 일종입니다.

또한 PySpark를 사용하면 Apache Spark와 Python 프로그래밍 언어로 RDD(Resilient Distributed Datasets)에 접속하는 데 도움이 됩니다. 이를 위해 Py4j 라이브러리를 활용했습니다. Py4J는 PySpark에 내장된 대중적인 라이브러리이며 JVM 개체를 사용해 Python의 동적인 인터페이스를 허용합니다. 

 

 

 

참고: https://databricks.com/kr/glossary/pyspark

 

PySpark란 무엇입니까? - Databricks

PySpark는 Apache Spark와 Python의 공동 작업을 지원하기 위해 릴리스되었으며, 사실상 Spark용 Python API의 일종입니다.

databricks.com

 

728x90