반응형
구조적 API란?
비정형 로그 파일부터 반정형 CSV 파일, 매우 정형적인 파케이(Parquet) 파일까지 다양한 데이터를 처리할 수 있다.
배치(batch)와 스트리밍(streaming) 처리에서 구조적 API를 사용할 수 있음.
구조적 API의 세 가지 분산 컬렉션 API
- Dataset
- DataFrame
- SQL 테이블과 뷰
DataFrame과 Dataset
공통점
- DataFrame과 Dataset은 잘 정의된 로우와 컬럼을 가지는 분산 테이블 형태의 컬렉션
- 결과를 생성하기 위해 어떤 데이터에 어떤 연산을 적용해야 하는지 정의하는 지연 연산의 실행 계획이며, 불변성을 가짐
차이점
- DataFrame = 비타입형
- 데이터 타입이 존재하지 않는 것은 아님
- 스키마에 명시된 데이터 타입의 일치 여부를 런타임에 확인
- Row타입으로 구성된 Dataset
- Row타입은 연산에 최적화된 인메모리 포맷의 내부적인 표현방식
- Row타입은 JVM 데이터 타입 대신 자체 데이터 포맷을 사용 -> 매울 효울적인 연산가능
- DataFrame을 사용하면 스파크의 최적화 된 내부 포맷 사용이 가능
- Dataset = 타입형
- 스키마에 명시된 데이터 타입의 일치 여부를 컴파일 타임에 확인
스키마(Schema)
DataFrame의 컬럼명과 데이터 타입을 정의
컬럼(Column)
단순 데이터 타입(정수형, 문자열), 복합 데이터 타입(배열, 맵, null)을 표현
로우(Row)
데이터 레코드
반응형
'프로그래밍 > Spark' 카테고리의 다른 글
[pyspark] 스파크 완벽 가이드 - 파케이(parquet)파일 (0) | 2022.03.16 |
---|---|
[pyspark] 스파크 완벽 가이드 - 다양한 데이터 타입 다루기 (0) | 2022.03.16 |
[pyspark] 스파크 완벽 가이드 - 구조적 API 기본 연산 (0) | 2022.03.16 |