시작하기무료로 시작하기

Spark 조인에서 브로드캐스팅 사용하기

Spark에서 테이블 조인은 클러스터 워커 간에 분산되어 실행됩니다. 데이터가 로컬에 없으면 다양한 셔플 작업이 필요하고, 이는 성능에 부정적인 영향을 줄 수 있어요. 대신 Spark의 broadcast 연산을 사용해 지정한 데이터를 노드에 복사해 주겠습니다.

몇 가지 팁:

  • 더 작은 DataFrame을 브로드캐스트하세요. DataFrame이 클수록 워커 노드로 전송하는 데 시간이 더 오래 걸립니다.
  • 작은 DataFrame의 경우, 브로드캐스트를 생략하고 Spark가 자체적으로 최적화를 찾도록 두는 것이 더 나을 수 있어요.
  • 쿼리 실행 계획에서 broadcastHashJoin이 보이면 브로드캐스팅이 성공적으로 설정된 것입니다.

DataFrame flights_dfairports_df를 사용할 수 있어요.

이 연습은 강의의 일부입니다

PySpark로 데이터 정제하기

강의 보기

연습 안내

  • pyspark.sql.functions에서 broadcast() 메서드를 가져오세요.
  • 브로드캐스팅을 사용해 flights_dfairports_df를 조인하여 새로운 DataFrame broadcast_df를 만드세요.
  • 쿼리 플랜을 표시하고 원래와의 차이점을 살펴보세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# Import the broadcast method from pyspark.sql.functions
from ____ import ____

# Join the flights_df and airports_df DataFrames using broadcasting
broadcast_df = flights_df.____(____(airports_df), \
    flights_df["Destination Airport"] == airports_df["IATA"] )

# Show the query plan and compare against the original
broadcast_df.____()
코드 편집 및 실행