PySpark는 Python의 Apache Spark용 인터페이스입니다. 파이썬 API를 사용하여 스파크 애플리케이션을 작성할 수 있을 뿐만 아니라 분산 환경에서 데이터를 대화식으로 분석할 수 있는 PySpark 셸도 제공합니다. PySpark는 Spark SQL, DataFrame, 스트리밍, MLlib(기계 학습) 및 Spark Core와 같은 스파크의 기능 대부분을 지원합니다.
스파크 SQL 및 데이터프레임
Spark SQL은 구조화된 데이터 처리를 위한 Spark 모듈입니다. DataFrame이라는 프로그래밍 추상화를 제공하며 분산 SQL 쿼리 엔진 역할을 할 수도 있습니다.
스트리밍
Spark 위에서 실행되는 Apache Spark의 스트리밍 기능은 Spark의 사용 편의성과 내결함성 특성을 계승하면서 스트리밍 및 과거 데이터 모두에서 강력한 대화형 및 분석 애플리케이션을 가능하게 합니다.
MLlib
스파크 위에 구축된 MLlib는 사용자가 실제 기계 학습 파이프라인을 만들고 튜닝하는 데 도움이 되는 균일한 고급 API 세트를 제공하는 확장 가능한 기계 학습 라이브러리이다.
스파크 코어
스파크 코어는 다른 모든 기능이 기본으로 제공되는 스파크 플랫폼의 기본 일반 실행 엔진입니다. RDD(Resilient Distributed Dataset) 및 인메모리 컴퓨팅 기능을 제공합니다.
- RDD(Resilient Distributed Dataset)
- Resilient: Memory 내 데이터 손실 시, 다시 생성할 수 있음. 즉, 유실된 파티션을 재연산해 복구 (탄력적)
- Distributed: Cluster를 통해 메모리에 분산되어 저장 (분산)
- Dataset: 파일을 통해 가져올 수 있음
.coalesce(int) => ()의 값은 파티셔닝 값을 뜻한다. 줄이는 것만 가능
.repartition(int) => ()의 값은 파티셔닝 값을 뜻한다. 줄이고 늘리고 둘다 가능(소스를 까보면 결국 안에는 coalesce가 있음.