Spark 3.5 vs 4.0? stable한 버전 + 문제 발생시 해결 방법이 많나?

Catalyst Optimizer & AQF

Spark 1: Rule set

Spark 2: Rule + Cost

Spark 3: Rule + Cost + Runtime

Catalyst optimizer

rule based engine.

logical plan인 DAG를 optimized physical plan으로 만들어주는 친구

Catalyst는 DAG를 코드로 변환시켜주는 Tungsten을 사용한다고

Spark가 intended to do인 logical plan을 알려주는 것이 declarative API.

미리 필터링을 해주면 연산량이 더 줄어드는데, 카탈리스트가 이걸 해준다.

image.png

Catalog: Rule이 모여 있는 set

내부 동작 방법

SQL query들을 Abstract Syntax Tree(AST)로 만든다.

Logical plan을 만들고, 최적화를 해준다.

Physical plan으로 converting하고, 최적화를 해준다. → 최적화를 할 때, cost model을 가지고 평가함

만들어진 Physical plan을 가지고 코드를 만들어 RDD로 준다.

Whole Stage Code Generation

Shuffle이 일어난다면 생각할게 훨씬 많아지니 하나의 stage 내에서 가장 효율적인 코드를 만들어준다.