[Spark] 2. Spark Session

2024. 12. 2. 23:36·데이터/Spark

Spark Session

  • Spark 프로그램의 시작은 Spark Session의 생성
    • 프로그램마다 하나를 만들어 Spark Cluster와 통신 -> Singleton 객체
    • Spark 2.0에서 처음 소개
  • Spark Session을 통해 Spark가 제공해주는 다양한 기능 사용
    • DataFrame, SQL, Streaming, ML API 모두 해당 객체로 통신
    • config 메소드를 이용해 다양한 환경설정 가능
    • 단, RDD와 관련된 작업을 할 때는 SparkSession 밑의 sparkContext 객체를 사용
    • Spark Session API 문서


Spark 세션 생성 예제

from pyspark.sql import SparkSession

# SparkSession - Singleton
spark = SparkSession.builder\
    .master("local[*]")\
    .appName('PySpark init')\
    .getOrCreate()

...

spark.stop()


Spark Session 환경 변수

  • Spark Session 생성 시 다양한 환경 설정 가능
  • 사용하는 Resource Manage에 따라 환경 변수가 달라짐
  • 예시
    • executor별 메모리: spark.executor.memory (기본값: 1g)
    • executor별 CPU수: spark.executor.cores (YARN에서는 기본값 1)
    • driver 메모리: spark.driver.memory (기본값: 1g)
    • Shuffle후 Partition의 수: spark.sql.shuffle.partitions (기본값: 최대 200)
  • 환경 설정 방법 -> 충돌 시 우선순위는 아래일수록 높다!
    • 환경 변수 설정
    • $SPARK_HOME/conf/spark_defaults.conf 수정
    • SparkSession 생성 시 지정 -> config() 메소드 사용
    • spark-submit 명령의 커맨드라인 파라미터


Spark Session 플로우

  • Spark Session 생성
  • 입력 데이터 로딩
  • 데이터 조작 작업
    • DataFrame API or Spark SQL 사용
    • 원하는 결과가 나올 때까지 새로운 DataFrame 생성
  • 최종 결과 저장
저작자표시

'데이터 > Spark' 카테고리의 다른 글

[Spark] 6. Spark Execution Plan  (0) 2024.12.03
[Spark] 5. File Format  (0) 2024.12.03
[Spark] 4. Database & Table  (2) 2024.12.03
[Spark] 3. Spark SQL  (0) 2024.12.02
[Spark] 1. Spark?  (1) 2024.11.28
'데이터/Spark' 카테고리의 다른 글
  • [Spark] 5. File Format
  • [Spark] 4. Database & Table
  • [Spark] 3. Spark SQL
  • [Spark] 1. Spark?
김줘
김줘
김줘와 같이 공부
  • 김줘
    초보개발자 김줘의 코딩일기
    김줘
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 데이터 엔지니어링 데브코스
      • 데이터
        • Airflow
        • Spark
        • Kafka
        • dbt
      • TroubleShooting
      • Docker
      • AWS
      • 크롤링, 스크래핑, 시각화
        • Selenium
        • 시각화
      • 코딩테스트
        • 프로그래머스
        • 입출력과 사칙연산
        • 정렬
      • Django
      • 자바 공부
      • 끄적끄적
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Java
    aws
    Python
    프로그래밍
    TiL
    부트캠프
    Airflow
    데이터 엔지니어링 데브코스 4기
    cloud
    데이터 엔지니어링 데브코스
    에어플로우
    오블완
    파이썬
    자바
    티스토리챌린지
    데브코스
    프로그래머스
    데이터 엔지니어
    초보개발자
    Azure
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
김줘
[Spark] 2. Spark Session
상단으로

티스토리툴바