728x90
반응형

spark config 에 대해서 정리하려고 한다.
사용해본 config 설정이 많지는 않지만 여러 config 들에 대해서 계속해서 정리해나가야겠다.

 

spark config setting 방법

# spark session 생성
spark = SparkSession.builder.appName("test").getOrCreate()

# config 예시
spark.conf.set("spark.sql.inMemoryColumnarStorage.compressed", True)
spark.conf.set("spark.sql.adaptive.enabled", True)
spark.conf.set("spark.sql.adaptive.coalescePartitions.enabled", True)
spark.conf.set("spark.sql.adaptive.skewJoin.enabled", True)

 

spark config

spark config 옵션 정리

 

spark.sql.inMemoryColumnarStorage.compressed

이 옵션은 spark 내부 엔진에서 데이터를 처리하는 방식과 관련이 있는 옵션이다.
이 옵션을 True 로 설정하면 spark 는 메모리 내 컬럼 저장 엔진에서 데이터를 압축하여 저장하려고 시도한다.
이렇게 하면 메모리 사용량을 줄일 수 있고 더 많은 데이터를 메모리에 보관할 수 있다.
압축을 사용하면 CPU 사용량이 늘어날 수 있기 때문에 CPU 와 메모리 사이의 균형을 잘 고려해야 한다.

 

spark.sql.adaptive.enabled

이 옵션은 spark 쿼리 실행 옵션 중 하나이다.
실행 계획을 동적으로 조정하도록 spark 옵티마이저에게 허용하는지 여부를 결정하게 된다.
True 로 설정하면 spark 는 실행 중에 실행 계획을 최적화 하려고 시도하며 쿼리 실행 속도를 향상 시킬 수 있다.
이 기능을 사용하면 일부 쿼리에서 성능 향상을 기대할 수 있지만 모든 쿼리에 대해 항상 유용하게 사용할 수 없다는 점을 유의해야 한다.

 

spark.sql.adaptive.coalescePartitions.enabled

이 옵션은 spark 의 파티션 병합 기능에 대한 기능과 관련되어 있다.
True 설정하면 spark 는 일부 셔플 작업에서 파티션을 병합하려고 시도한다.
파티션 병합은 셔플된 데이터를 줄이는데 도움이 되고 셔플의 오버헤드를 감소시킬 수 있다.
따라서, 파티션 병합을 활성화하면 효율적인 셔플 처리를 할 수 있도록 개선할 수 있다.

 

spark.sql.adaptive.skewJoin.enabled

이 옵션은 spark 의 조인 연산에서 데이터 스쿼싱(skew) 을 처리하는데 사용된다.
True 로 설정하면 spark 는 데이터 스쿼싱을 감지하고 조인 작업을 최적화하려고 시도한다.
데이터 스쿼싱은 조인 키의 값이 불균형하게 불포되어있는 경우에 발생하며 이를 처리하려면 특별한 최적화가 필요하다.
이 옵션을 활성화하면 데이터 스쿼싱 문제를 해결하기 위해 자동으로 조치를 취할 수 있다.

728x90
반응형
복사했습니다!