[스파크 완벽 가이드] Part 3. 저수준 API
·
Data Engineering/Spark
대부분의 상황에서는 구조적 API를 사용하는 것이 좋다. 그러나 비즈니스가 기술적 문제를 고수준 API를 사용해 모두 처리할 수 있는 것은 아니므로, 스파크의 저수준 API를 사용해야 할 수도 있다. CHAPTER 12. RDD 사용자가 실행한 모든 DataFrame이나 Dataset 코드는 RDD로 컴파일된다. RDD는 간단히 말해 불변성을 가지며 병렬로 처리할 수 있는 파티셔닝된 레코드의 모음이다. RDD의 레코드는 자바, 스칼라, 파이썬의 객체일 뿐이다. 또한 구조적 API와는 다르게 레코드의 내부 구조를 스파크에서 파악할 수 없으므로, 최적화를 하려면 훨씬 많은 수작업이 필요하다. RDD에는 수많은 하위 클래스가 존재하며, DataFrame API에서 최적화된 물리적 실행 계획을 만드는데 대부분 ..
[스파크 완벽 가이드] Part 2. 구조적 API: DataFrame, SQL, Dataset
·
Data Engineering/Spark
CHAPTER 4. 구조적 API 개요 구조적 API는 비정형 로그 파일부터 반정형 CSV 파일, 매우 정형적인 파케이(Parquet) 파일까지 다양한 유형의 데이터를 처리할 수 있다. 구조적 API에는 세 가지 분산 컬렉션 API가 있다; Dataset, DataFrame, SQL 테이블과 뷰 배치와 스트리밍 처리에서 구조적 API를 사용할 수 있고, 배치 작업과 스트리밍 작업을 서로서로 쉽게 변환할 수 있다. 스키마는 DataFrame의 컬럼명과 데이터 타입을 정의한다. 이는 데이터소스에서 얻거나 직접 정의할 수 있다. 본질적으로 DataFrame은 '비타입형'으로 런타임에 스키마와 비교하며, Dataset은 '타입형'으로 컴파일 타임에 스키마와 비교한다. 스파크의 DataFrame은 Row 타입으로..