RDD, DataFrame, Dataset의 세 가지 인터페이스를 통해 개발자는 최적화된 성능으로 여러 언어에 걸쳐 분산 데이터를 처리할 수 있습니다.
작성자: Databricks 직원
스파크 API는 아파치 스파크 빅데이터 처리 엔진에서 데이터 처리와 분석을 수행하기 위한 프로그래밍 인터페이스(API)입니다. Spark를 다루다 보면 다음과 같은 세 가지 API를 접하게 됩니다. DataFrame, Dataset 그리고 RDD의 세 가지입니다.
RDD, 즉 Resilient Distributed Datasets란 분산형 컴퓨팅을 포함한 레코드 컬렉션으로 본질적으로 내결함성이 있고 변경 불가능합니다. 저수준 API와 병력 방식으로 운영할 수 있는데, 이 경우 지연 기능 때문에 Spark 작업이 빠른 속도로 수행됩니다. RDD가 지원하는 작업 유형은 두 가지입니다.


RDD를 다루기로 선택했다면, 모든 RDD를 각각 최적화해야 합니다. 또한 RDD는 Dataset나 DataFrame과는 달리 수집된 데이터의 스키마를 추론하지 않으므로 사용자가 지정해야 합니다.
DataFrame은 이름이 명명된 열 아래에 속하는 행의 분산형 컬렉션입니다. 간단히 말하면, 열 헤더를 포함한 Excel 시트와 같다고 보면 됩니다. 아니면 관계형 데이터베이스의 테이블이라든지, R이나 Python에서는 DataFrame과 동급이라고 생각하면 됩니다. 여기에는 RDD와 공통되는 세 가지 특징이 있습니다.
Spark에서 DataFrame을 만들려면 몇 가지 방법이 있습니다.
DataFrame API의 주된 단점은 컴파일링 시간을 안전하게 지원하지 않는다는 점입니다. 따라서 데이터 구조를 모르는 경우 사용자에게 한계가 생깁니다.
Dataset는 강력한 형식(strongly-typed), 변경 불가능한 개체 컬렉션으로 이는 관계형 스키마에 매핑됩니다. Dataset는 JVM 개체를 사용하여 만들고 복잡한 기능적인 변환을 사용해 조작할 수 있습니다. Dataset를 만드는 방법은 두 가지입니다.
Dataset의 주된 단점은 문자열로 타입캐스트(typecasting)해야 한다는 점입니다.
블로그를 구독하고 최신 게시물을 이메일로 받아보세요.