🐍 PySpark
- 저수준 API(특히 RDD)를 사용하는 경우 유연성을 얻는 대신 성능 저하를 감수해야 한다.
- 파이썬 데이터를 스파크와 JVM에서 이해할 수 있도록 변환하고 그 반대로 변환하는 과정에서 큰 비용이 발생하기 때문이다. 이 과정에는 데이터 직렬화 처리 과정과 함수 처리 과정이 포함된다.
- 구조적 API는 동작 속도가 빠르다.
- 여러 프로그래밍 모델을 함께 사용할 수 있다는 장점이 있다.
- 예) 스파크를 이용해 큰 규모의 ETL 작업 수행 → 결과를 드라이버로 수집 → Pandas 라이브러리를 활용해 해당 결과에 대한 추가 처리 작업 진행
- 즉, 스파크로 빅데이터를 처리하고 Pandas 라이브러리로 작은 데이터를 처리하는 기능을 사용할 수 있다.
🌩️ 스파크 패키지 사용 방법
-
스칼라나 자바를 사용하는 경우
→ 빌드 파일의 의존성 부분에 포함시킨다!
-
파이썬이나 R을 사용하는 경우
→ 사용자 애플리케이션 런타임에 명시한다.
[출처] 스파크 완벽 가이드 (빌 체임버스, 마테이 자하리아 지음)