본문 바로가기

Dev Platform/Linux

[Linux] Pyspark, Jupyter(쥬피터) 쉽게 연동하기

반응형

Pyspark은 파이썬으로 작성된 Apache Spark의 파이썬 API입니다. 쥬피터 노트북(Jupyter Notebook)은 데이터 분석 및 시각화를 위한 인터랙티브한 환경을 제공하는 툴입니다. Pyspark과 쥬피터를 함께 사용하면 데이터 처리 및 분석 작업을 보다 편리하게 수행할 수 있습니다. 이번 글에서는 Pyspark와 쥬피터를 연동하는 방법에 대해 알아보겠습니다.

https://tobelinuxer.tistory.com/135

 

[Linux] 우분투에 Spark 설치하기

우분투에서 Spark 설치하기 Apache Spark는 대량의 데이터를 처리하고 분석하는 빅데이터 처리를 위한 오픈 소스 분산 컴퓨팅 시스템입니다. 이번 글에서는 Ubuntu 운영체제에 Spark를 설치하는 방법에

tobelinuxer.tistory.com

연동에 앞서 먼저 상기의 블로그를 참고하여 Spark를 설치하시기 바랍니다.

1. Pyspark 설치하기

먼저 Pyspark를 설치해야 합니다. Pyspark는 Apache Spark와 함께 제공되므로, Apache Spark를 먼저 설치한 후 Pyspark를 설치해야 합니다. 설치 방법은 다음과 같습니다.

  1. 환경 설정
sudo mkdir -p /usr/local/bin/before-notebook.d
sudo ln -s ${SPARK_HOME}/sbin/spark-config.sh /usr/local/bin/before-notebook.d/spark-config.sh
cp -p "${SPARK_HOME}/conf/spark-defaults.conf.template" "${SPARK_HOME}/conf/spark-defaults.conf"
echo 'spark.driver.extraJavaOptions -Dio.netty.tryReflectionSetAccessible=true' >> "${SPARK_HOME}/conf/spark-defaults.conf"
echo 'spark.executor.extraJavaOptions -Dio.netty.tryReflectionSetAccessible=true' >> "${SPARK_HOME}/conf/spark-defaults.conf"
  1. Pyspark 설치:
    • 쥬피터 노트북을 실행한 후 새로운 노트북을 생성합니다.
    • 셀에 다음 명령어를 입력하여 Pyspark를 설치합니다.
    !pip install pyspark
    • 설치가 완료되면, Pyspark를 임포트하여 사용할 수 있습니다.
    import pyspark

2. Pyspark 쥬피터 연동하기

Pyspark를 쥬피터 노트북과 연동하기 위해 몇 가지 설정 작업이 필요합니다. 다음과 같이 진행해보겠습니다.

  1. Pyspark 설정 작성:
    • 셀에 다음 코드를 입력하여 Pyspark 설정을 작성합니다.
    from pyspark.sql import SparkSession
    
    # 스파크 세션 생성
    spark = SparkSession.builder.master("local").appName("SparkSQL").getOrCreate()
    # 로그 레벨 정의
    spark.sparkContext.setLogLevel("ERROR")
    • SparkSession 객체를 생성하여 쥬피터에 연동시킬 Spark 세션을 만듭니다.
    • .appName("SparkSQL")는 Spark 애플리케이션의 이름을 설정하는 부분이므로, 필요에 따라 수정할 수 있습니다.
  2. Pyspark 코드 실행:
    • 세 번째 셀부터는 Pyspark 코드를 작성하고 실행할 수 있습니다.
    • 예를 들어, 다음과 같이 Pyspark 코드를 작성하여 data를 생성하여 이를 spark를 통해 분석할 수 있습니다.
    # 예제
    data = [('001','Smith','M',40,'DA',4000),
            ('002','Rose','M',35,'DA',3000),
            ('003','Williams','M',30,'DE',2500),
            ('004','Anne','F',30,'DE',3000),
            ('005','Mary','F',35,'BE',4000),
            ('006','James','M',30,'FE',3500)]
    
    columns = ["cd","name","gender","age","div","salary"]
    df = spark.createDataFrame(data = data, schema = columns)
    
    # 예제
    data = [('001','Smith','M',40,'DA',4000),
            ('002','Rose','M',35,'DA',3000),
            ('003','Williams','M',30,'DE',2500),
            ('004','Anne','F',30,'DE',3000),
            ('005','Mary','F',35,'BE',4000),
            ('006','James','M',30,'FE',3500)]
    
    columns = ["cd","name","gender","age","div","salary"]
    df = spark.createDataFrame(data = data, schema = columns)
    df.printSchema()
    • printSchema() 메서드를 사용하여 dataFrame의 스키마 출력합니다.

이렇게 Pyspark와 쥬피터를 연동하여 데이터 처리 및 분석 작업을 편리하게 수행할 수 있습니다. 본 글에서는 기본적인 연동 방법을 설명했지만, Pyspark와 쥬피터의 다양한 기능을 활용하여 더욱 다양한 작업을 수행할 수 있습니다. 추가적인 내용은 각각의 공식 문서를 참고하시기 바랍니다.

참고 문서:

 

본 블로그 글은 G-ChatBot 서비스를 이용하여 AI(ChatGPT) 도움을 받아 작성하였습니다.

https://gboysking.net

 

G-ChatBot

Our service is an AI chatbot service developed using OpenAI API. Our service features a user-friendly interface, efficient management of token usage, the ability to edit conversation content, and management capabilities.

gboysking.net

 

반응형