구조적 API 에는 세가지 분산 컬렉션 API 가 있다.
배치와 스트리밍 처리에서 구조적 API 를 모두 활용할 수 있음
스키마는 DataFrame 의 컬럼명과 데이터타입을 정의
스파크는 사실상 프로그래밍 언어여서 실행 계획 수립과 처리에 사용하는 자체 데이터 타입 정보를 가지고 있는 카탈리스트 엔진을 사용
자체 타입을 지원하는 여러 언어 API 와 직접 매핑
DataFrame vs DataSet
DataFrame 은 스키마에 명시된 데이터 타입의 일치 여부를 컴파일 타임에 확인
Dataset은 데이터 타입의 일치 여부를 컴파일 타임에 확인
Dataset 은 jvm 기반의 언어인 스칼라와 자바에서만 지원
DataFrame 을 사용하면 스파크의 최적화 된 내부 포맷을 이용할수 있고 어떤 언어 API 를 사용하더라도 동일한 효과와 효율성을 얻을 수 있다.