PySpark Broadcast Join
PySpark Broadcast Join
PySpark Broadcast Join
- 스파크가 조인할 때 노드간 통신을 하는 방법에 따라 shuffle join과 broadcast join으로 나뉨
- Broadcast join은 테이블이 단일 노드의 메모리에 들어갈 정도로 작다면, 사용 가능한 join 방법
- 작은 DataFrame을 전체 노드에 모두 복사함
- 조인 시작시 한 번만 데이터가 복제되지만, 통신 비용이 처음 말고는 발생하지 않음
- 각 노드가 다른 노드를 기다리지 않음
- 단일 노드에서 소화하기 힘든 큰 테이블의 경우 비효율적일 수 있음
- CPU에서 병목 발생 가능
- Driver의 메모리가 터지기도 쉬움
- 큰 테이블과 작은 테이블을 join할 때 가능
- 잘 사용한다면 속도가 굉장히 빠름