빅데이터 처리/Spark

Spark SQL - Join 방식

BUST 2019. 1. 9. 20:52

Spark SQL - Join 방식


BroadcastHashJoin / BroadcastNestedJoin

  • join을 하는 대상에 전체데이터를 Broadcast해서 사용하는 join 방식
  • `spark.sql.autoBroadcastJoinThreshold` 설정으로 Threshold를 조절할수 있다.
    • Data가 너무 크게 되면 OOM 에러가 발생이 될수가 있다.
  • broadcast를 이용하여 hint를 줄수가 있다.
  • 작은 데이터와 큰 데이터를 join을 할때 작은 데이터를 broadcast를 이용하여 성능을 높일수가 있다. 
    (shuffle을 줄이는 효과)


SortMergeJoin

  • join을 하는 2개의 데이터셋에 대해 먼저 sort를 진행을 한뒤 join을 하는 방식
  • `spark.sql.join.preferSortMergeJoin`를 통해 설정을 할수가 있다.


Shuffle Join

  • 같은 키를 가진 date를 같은 executor를 보내 join을 하는 방식


Cartesian Product

  • 곱집합