개요

구조적 API 에는 세가지 분산 컬렉션 API 가 있다.

배치와 스트리밍 처리에서 구조적 API 를 모두 활용할 수 있음

DataFrame 과 Dataset

스키마는 DataFrame 의 컬럼명과 데이터타입을 정의

스파크는 사실상 프로그래밍 언어여서 실행 계획 수립과 처리에 사용하는 자체 데이터 타입 정보를 가지고 있는 카탈리스트 엔진을 사용

자체 타입을 지원하는 여러 언어 API 와 직접 매핑

DataFrame vs DataSet

DataFrame 은 스키마에 명시된 데이터 타입의 일치 여부를 컴파일 타임에 확인

Dataset은 데이터 타입의 일치 여부를 컴파일 타임에 확인

Dataset 은 jvm 기반의 언어인 스칼라와 자바에서만 지원

DataFrame 을 사용하면 스파크의 최적화 된 내부 포맷을 이용할수 있고 어떤 언어 API 를 사용하더라도 동일한 효과와 효율성을 얻을 수 있다.