스파크의 핵심 목표: '빅데이터 애플리케이션 개발에 필요한 통합 플랫폼을 제공하자'
통합의 의미?
스파크는 일관성 있는 조합형 API를 제공하므로 작은 코드 조각이나 기존 라이브러리를 사용해 애플리케이션을 만들 수 있다.
스파크의 API는 사용자 애플리케이션에서 다른 라이브러리의 기능을 조합해 더 나은 성능을 발휘할 수 있도록 설계되었다.
스파크는 통합이라는 관점을 중시하며 기능의 범위를 컴퓨팅 엔진으로 제한해옴
따라서 저장소 시스템의 데이터를 연산하는 역할만 수행할 뿐, 영구 저장소 역할은 수행하지 않음
그 대신, 다음과 같은 저장소 지원
스파크는 데이터 저장 위치에 상관없이 처리에 집중하도록 만들어짐
다양한 외부 라이브러리 지원
표준 라이브러리 지원
스파크 코어 엔진 자체는 최초 공개 후 큰 변화가 없었지만 라이브러리는 더 많은 기능을 제공하기 위해 꾸준히 변해옴
UC버클리 대학교에서 2009년 스파크 연구 프로젝트로 시작
연구 결과로 명확해진 두 가지 사실
위 사실을 기반으로, '여러 단계로 이루어진 애플리케이션을 간결하게 개발할 수 있는 함수형 프로그래밍 기반의 API' 개발
1.0 이전의 스파크 초기 버전은 함수형 연산 관점에서 API를 정의
1.0 부터는 구조화된 데이터를 기반으로 동작하는 신규 API인 스파크 SQL이 추가
시간이 흘러 DataFrame, 머신러닝 파이프라인, 자동 최적화를 수행하는 구조적 스트리밍 등 더 강력한 구조체 기반의 신규 API 추가