처음 Spark를 사용했던 프로젝트는 방대한 양의 금융데이터를 중복 연산해야하는 프로젝트였다. 데이터가 방대하다보니 초기 데이터를 로드하는 데만 해도 시간이 꽤 소요돼었다. 그때 Cache & Persist를 이용해 수행시간을 절약할 수 있었다.
cache
와 persist
다.cache
디폴트 Storage Level
을 사용Persist
Storage Level을 사용자가 원하는대로
지정 가능 # cache()
# cache()를 통해 categoryReviews 연산은 1번만 수행
categoryReviews = filtered_lines.map(parse).cache()
result1 = categoryReviews.take(10)
result2 = categoryReviews.mapValues(lambda x: (x,1))
# persist()
from pyspark import StorageLevel
categoryReviews = filtered_lines.map(parse).persist(StorageLevel.MEMORY_AND_DISK)
** serialized
형태로 변환해서 저장해 저장 용량을 아낄 수 있지만 데이터 read시 재변환 연산을 수행해야함.