Spark 2.0의 데이터 셋(dataset)은 다음과 같이 정의되어 있다.
type DataFrame = Dataset[Row]
Dataset은 스키마를 갖고 있다.
(spark 1.5) DataFrame에 encoder를 추가한 것이 Dataset이라 할 수 있다.
(spark 2.0) DataFrame은 특별한 encoder 없이 Dataset[Row]의 앨리어스로 쓸 수 있게 되었다.
데이터 셋을 고도로 최적화한 바이너리(binary)로 표현하는 RDD의 효율적인 테이블로 생각할 수 있다.
바이너리 표현은 인코더(encoder)를 사용해 이루어 진다.
인코더는 RDD 표현보다 성능이 더 좋은 다양한 오브젝트를 바이너리 구조로 직렬화한다.
데이터 프레임은 내부적으로 RDD를 내부적으로 사용하고 데이터 프레임/데이터 셋은 RDD와 동일하게 배포되므로 분산 데이터 집합이기도 하다.
분명 데이터 셋은 불변임을 의미한다.
'scala' 카테고리의 다른 글
스칼라 빈 값 정의 (0) | 2018.01.11 |
---|---|
[React-Play2] "No 'Access-Control-Allow-Origin' header is present on the requested resource." 해결 및 CORS 적용 (0) | 2018.01.10 |
[scala-webjars] org.webjars.MultipleMatchesException: Multiple matches found for .. 해결하기 (0) | 2018.01.02 |
[Spark] HadoopRDD / NewHadoopRDD (0) | 2017.12.25 |
[scala] 중복 라이브러리 체크 하기 (0) | 2017.12.22 |