구조적 API 기본 연산
- DataFrame 은 Row 타입의 레코드와 각 레코드에 수행할 연산 표현식을 나타내는 여러 컬럼으로 구성됨
- 스키마는 각 컬럼명과 데이터 타입을 정의
- DataFrame의 파티셔닝은 Dataframe이 클러스터에서 물리적으로 배치되는 형태
- 파티셔닝 스키마는 파티션을 배치하는 방법을 정의함
스키마
StructType(List(StructField(,,) ...))
- 여러개의 StructField 타입 필드로 구성된 StructType 객체
- StructField 는 이름, 데이터타입, 컬럼이 null 값을 가질수 있는지를 지정하는 불리언값을 가짐
- 필요시 메타데이터 지정가능, 머신러닝에서 필요한경우 있음
- 스파크는 자체 데이터 타입 정보를 사용하므로 프로그래밍 언어의 데이터타입을 스파크의 데이터 탑입으로 설정할 수 없음
컬럼과 표현식
from pyspark.sql.functions import col, column
col("someColName")
column("somColName")
- 컬럼은 컬럼명을 카탈로그에 저장된 정보와 비교하기 전까지 미확인 상태로 남는다
- 분석기가 동작하는 단계에서 컬럼과 테이블을 분석
명시적 컬럼 참조