Spark 3.5 vs 4.0? stable한 버전 + 문제 발생시 해결 방법이 많나?
Spark 1: Rule set
Spark 2: Rule + Cost
Spark 3: Rule + Cost + Runtime
rule based engine.
logical plan인 DAG를 optimized physical plan으로 만들어주는 친구
Catalyst는 DAG를 코드로 변환시켜주는 Tungsten을 사용한다고
Spark가 intended to do인 logical plan을 알려주는 것이 declarative API.
미리 필터링을 해주면 연산량이 더 줄어드는데, 카탈리스트가 이걸 해준다.
Catalog: Rule이 모여 있는 set
SQL query들을 Abstract Syntax Tree(AST)로 만든다.
Logical plan을 만들고, 최적화를 해준다.
Physical plan으로 converting하고, 최적화를 해준다. → 최적화를 할 때, cost model을 가지고 평가함
만들어진 Physical plan을 가지고 코드를 만들어 RDD로 준다.
Shuffle이 일어난다면 생각할게 훨씬 많아지니 하나의 stage 내에서 가장 효율적인 코드를 만들어준다.