띵유로그

SPARK - DATAFRAME, DATASET 본문

DataEngineering/SPARK

SPARK - DATAFRAME, DATASET

띵유 2022. 7. 27. 12:35
반응형

SPARK의 DATAFRAME은 비타입형, DATASET은 타입형입니다.

DATAFRAME

DATAFRAME이 비타입형이라고 하는데에 무리가 있을 수 있겠지만, 포인트는 데이터타입이 런타임에 결정된다는 것입니다.
DATAFRAME은 ROW type으로 구성된 DATASET입니다.
ROW는 연산에 최적화 된 인메모리 포맷입니다. 가비지컬렉션 등 추가로 관리가 필요한 jvm 의 타입이 아니라 연산이 효율적입니다.

DATASET

DATASET은 타입형입니다. 컴파일시간에 데이터타입이 결정됩니다.

JVM 기반 언어이기 때문에 스칼라, 자바에서만 지원하고 python 등에서는 dataset을 쓸 수 없습니다.
dataset을 사용하려면 스칼라-case class /자바 - Bean을 통해서 만들 수 있습니다.

 

컴파일시간에 데이터 타입 검증이 필요한게 아니라면 연산의 효율성을 위해 DATAFRAME을 사용하는 것이 좋아보입니다.

반응형
Comments