Spark DataFrame 크기 계산하기

Broadcast join이 적합한지 궁금할 때, 아니면 executor resource를 얼마나 써야하는지 궁금할 때, 실제 DataFrame의 크기를 계산해 보는것은 매우 중요하다.

물론 아쉽게도 정확하게 그 DataFrame이 어떤 크기를 갖는지는 disk에 저장을 해봐야 알겠지만, 다행히도 Spark에서 좋은 API를 제공한다. 아래의 코드는 Scala Spark를 가정했다.

import org.apache.spark.util.SizeEstimator

SizeEstimator.estimate(df)

// res4_1: Long = 27739224L

위와 같이 SizeEstimator를 사용하면 해당 df가 어느 정도 크기를 갖는지 알려준다. 위에서 df의 크기는 약 27.7MB이다.

위의 코드를 production에서 돌릴 수는 없기 때문에, prototyping을 할 때 써보기를 추천한다.