← Spark 모듈로

Learn · Glossary

Spark 용어 사전

총 172개 용어

Aggregator[IN, BUF, OUT]

타입 안전한 커스텀 집계 함수를 정의하는 추상 클래스. zero/reduce/merge/finish 네 메서드를 구현하며, toColumn()으로 TypedColumn으로 변환해 Dataset.select나 KeyValueGroupedDataset.agg와 함께 쓴다.
Aggregator API — 타입 안전한 집계 함수를 직접 만든다 · Apache Spark 공식 Javadoc org.apache.spark.sql.expressions.Aggregator

ANALYZE TABLE

테이블/컬럼의 통계(크기, 행 수, min/max, distinct 값 개수 등)를 수집해 카탈로그에 저장하는 SQL 명령. CBO가 이 통계를 근거로 조인 순서 등을 결정한다. 스냅샷이라 자동 갱신되지 않는다.
비용 기반 옵티마이저(CBO)와 테이블 통계 — ANALYZE TABLE · Databricks CBO 공식 문서 + japila.pl Spark SQL Internals(Cost-Based Optimization)

Apache Arrow (Spark 맥락)

JVM과 Python 프로세스가 같은 메모리 레이아웃을 공유(zero-copy)할 수 있게 하는 언어 무관 컬럼형 데이터 포맷. pandas UDF와 toPandas()/createDataFrame() 변환의 성능 기반이 된다.
PySpark UDF의 Arrow 최적화 — 설정과 UDAF 대안 · Apache Spark 공식 문서 Apache Arrow in PySpark 사용자 가이드

approx_count_distinct

HyperLogLog 알고리즘 기반으로 컬럼의 고유값 개수를 근사 계산하는 함수. 정확한 countDistinct보다 훨씬 빠르다.
실전 코딩 시나리오 (조인·UDF·파티셔닝) · spark_ref_01.md Q41-50 (Advanced Scenarios & Coding Logic)

approxQuantile

지정한 허용오차(relError) 범위 내에서 근사 분위수를 계산하는 DataFrameStatFunctions 메서드. 정확한 계산보다 빠르게 근사값을 얻을 수 있다.
숫자 다루기: 산술 연산과 통계 함수 · Chapter 6: Working with Numbers 절 (PDF pp.91-96)

AQE (Adaptive Query Execution)

실행 중 통계를 반영해 셔플 파티션 병합, 스큐 조인 최적화, 조인 전략 변경 등을 자동으로 수행하는 Spark 3.0+ 기능. Spark 3.2부터 기본 활성화.
성능 튜닝과 최적화 (스큐·셔플·Catalyst·Tungsten) · spark_ref_01.md Q21-30 (Performance Tuning & Optimization) + FAQ(파티셔닝/브로드캐스트 조인/성능 최적화/cache·persist/데이터 스큐) 종합, 수치 오류 정정 포함

Barrier Execution Mode

RDD.barrier()로 지정한 스테이지의 모든 태스크를 반드시 동시에 실행시키고, 하나라도 실패하면 스테이지 전체를 재시작하는 갱 스케줄링 방식. 분산 딥러닝 학습처럼 태스크 간 지속적 통신이 필요한 워크로드를 위해 Project Hydrogen의 일환으로 도입됐다.
Barrier Execution Mode — Spark 안에 MPI 스타일 분산 학습을 끼워넣기 · Apache Spark JIRA SPARK-24374(Project Hydrogen)

Broadcast Variable

읽기 전용 데이터를 각 노드에 캐시해두어 태스크마다 재전송하지 않도록 하는 변수. 작은 테이블과의 조인 셔플을 없애는 데 쓰인다.
RDD·DataFrame·Dataset와 데이터 처리 · spark_ref_01.md Q11-20 (Data Structures & APIs)

Bucketing

테이블을 조인/집계 키의 해시값 기준으로 고정된 수의 버킷(파일)에 미리 나누어 저장하는 기법. 조인 시 셔플을 줄인다.
실전 코딩 시나리오 (조인·UDF·파티셔닝) · spark_ref_01.md Q41-50 (Advanced Scenarios & Coding Logic)

Catalyst

Spark 내부에서 쿼리 계획·최적화·실행을 담당하는 엔진. 언어와 무관하게 자체 타입 정보를 유지한다.
Catalyst 타입 시스템: untyped DataFrame vs typed Dataset · Chapter 4: Overview of Structured Spark Types - Catalyst, DataFrame/Dataset 타입 차이, Columns, Rows 절 (PDF pp.45-47)

Catalyst Optimizer

Spark SQL의 쿼리 최적화 엔진. Analysis→Logical Optimization→Physical Planning→Code Generation 4단계로 동작한다.
성능 튜닝과 최적화 (스큐·셔플·Catalyst·Tungsten) · spark_ref_01.md Q21-30 (Performance Tuning & Optimization) + FAQ(파티셔닝/브로드캐스트 조인/성능 최적화/cache·persist/데이터 스큐) 종합, 수치 오류 정정 포함

Cost Model

여러 물리적 실행 전략(예: 조인 방식) 중 테이블·파티션 크기 등 물리적 속성을 근거로 최적안을 고르는 데 쓰이는 비교 모델.
Structured API 실행 과정: 논리 계획에서 클러스터 실행까지 · Chapter 4: Overview of Structured API Execution - Logical Planning, Physical Planning, Execution 절 (PDF pp.51-53)

DAG

Directed Acyclic Graph. Spark가 호출된 트랜스포메이션들을 기록해두는, 방향이 있고 순환하지 않는 실행 계획 그래프.
Spark 핵심 아키텍처 (Driver/Executor/DAG/RDD) · spark_ref_01.md Q1-10 (Core Concepts & Architecture)

Data Skew

특정 파티션에 데이터가 편중되어 일부 태스크만 비정상적으로 오래 걸리는 현상.
성능 튜닝과 최적화 (스큐·셔플·Catalyst·Tungsten) · spark_ref_01.md Q21-30 (Performance Tuning & Optimization) + FAQ(파티셔닝/브로드캐스트 조인/성능 최적화/cache·persist/데이터 스큐) 종합, 수치 오류 정정 포함

DataFrame

행과 열, 스키마를 가진 표 형태의 분산 데이터 컬렉션. 한 머신이 아니라 클러스터 전체에 걸쳐 존재할 수 있다.
SparkSession, DataFrame, 파티션 · Chapter 2: A Gentle Introduction to Spark — Starting Spark, SparkSession, DataFrames, Partitions (pp.7-9)

이름이 붙은 컬럼으로 구성된 분산 데이터 컬렉션. Catalyst/Tungsten 최적화를 받는다.
RDD·DataFrame·Dataset와 데이터 처리 · spark_ref_01.md Q11-20 (Data Structures & APIs)

DataFrame (untyped)

스키마 타입 일치 여부를 런타임에만 검사하는 구조화 컬렉션. Scala에서는 Dataset[Row]와 동일하다.
Catalyst 타입 시스템: untyped DataFrame vs typed Dataset · Chapter 4: Overview of Structured Spark Types - Catalyst, DataFrame/Dataset 타입 차이, Columns, Rows 절 (PDF pp.45-47)

DataFrameReader

SparkSession에 연결되어 CSV, JSON 등 다양한 포맷과 옵션(inferSchema, header 등)으로 데이터를 읽어 DataFrame을 만드는 컴포넌트.
End-to-End 예제로 보는 실행 계획 (항공편 데이터) · Chapter 2: A Gentle Introduction to Spark — An End to End Example, DataFrames and SQL (pp.12-21)

DataFrameStatFunctions / DataFrameNaFunctions

DataFrame의 서브모듈. 전자는 통계 관련 함수(상관계수, 분위수 등), 후자는 null 데이터 처리 함수를 모아 둔 도메인 특화 API다.
표현식 API 지도와 불리언(Boolean) 다루기 · Chapter 6: Working with Different Types of Data - Chapter Overview, Where to Look for APIs, Working with Booleans 절 (PDF pp.85-91)

Dataset

Row가 아닌 사용자 정의 JVM 객체(case class/Java bean)를 다루는 Spark의 타입 세이프 API. Scala/Java에서만 사용 가능하다.
Dataset과 캐싱 — 타입 안전 API와 반복 접근 최적화 · Chapter 3: A Tour of Spark's Toolset - 개요, Datasets, Caching Data for Faster Access (pp.22-26)

DataFrame에 컴파일 타임 타입 안정성을 더한 API. Scala/Java 전용이며 PySpark에는 해당 개념이 없다.
RDD·DataFrame·Dataset와 데이터 처리 · spark_ref_01.md Q11-20 (Data Structures & APIs)

Dataset (typed)

컴파일 타임에 타입을 검사하는 구조화 컬렉션. Scala/Java 등 JVM 언어에서만 사용 가능하며 case class/Java bean으로 타입을 지정한다.
Catalyst 타입 시스템: untyped DataFrame vs typed Dataset · Chapter 4: Overview of Structured Spark Types - Catalyst, DataFrame/Dataset 타입 차이, Columns, Rows 절 (PDF pp.45-47)

Deletion Vector

Roaring Bitmap 기반의 압축된 비트맵으로, base Parquet 파일을 다시 쓰지 않고 삭제된 행의 위치만 기록하는 Delta Lake의 구조. 작으면 트랜잭션 로그에 인라인으로, 크면 별도 파일로 저장된다.
Delta Lake Deletion Vectors — 파일을 안 지우고 마스크만 남긴다 · Delta Lake 공식 블로그 Deletion Vectors, Microsoft Learn Deletion vectors in Databricks

Delta Lake Time Travel

VERSION AS OF 또는 TIMESTAMP AS OF로 Delta 테이블의 과거 특정 시점 스냅샷을 그대로 조회하는 기능. 트랜잭션 로그와 그 시점에 참조된 데이터 파일이 남아있어야만 동작한다.
Delta Lake Time Travel — VACUUM이 지운 과거는 되돌아갈 수 없다 · Delta Lake 공식 블로그 Time Travel, Microsoft Fabric 공식문서 Delta Lake time travel

distinct

하나 이상의 컬럼 값 기준으로 중복 행을 제거해 새 DataFrame을 반환하는 트랜스포메이션.
행 필터링, 고유값, 샘플링, 합치기, 정렬 · Chapter 5: Filtering Rows, Getting Unique Rows, Random Samples/Splits, Concatenating and Appending Rows, Sorting Rows 절 (PDF pp.75-81)

Driver

사용자 코드의 main()이 실행되며 DAG 생성·스테이지/태스크 분할·스케줄링·결과 수집을 담당하는 Spark 애플리케이션의 중심 프로세스.
Spark 핵심 아키텍처 (Driver/Executor/DAG/RDD) · spark_ref_01.md Q1-10 (Core Concepts & Architecture)

equi-join

조인 조건이 '컬럼 = 컬럼' 형태의 동등 비교로만 구성된 조인. Broadcast/Sort-Merge/Shuffled Hash Join은 모두 equi-join을 전제로 하고, 범위 비교 등 비-equi 조인에는 Nested Loop 계열만 적용 가능하다.
조인 전략 선택 — 힌트와 4가지 물리적 조인 방식 · Spark 4.2.0 공식 문서 sql-performance-tuning.html — Join Strategy Hints

Executor

워커 노드에서 실행되며 Driver가 할당한 태스크를 처리하고 데이터를 메모리/디스크에 저장하는 프로세스.
Spark 핵심 아키텍처 (Driver/Executor/DAG/RDD) · spark_ref_01.md Q1-10 (Core Concepts & Architecture)

explain plan / 물리 실행 계획

DataFrame의 트랜스포메이션 계보를 위(최종 결과)에서 아래(원천 데이터) 순으로 보여주는 실행 계획. explain()으로 확인한다.
End-to-End 예제로 보는 실행 계획 (항공편 데이터) · Chapter 2: A Gentle Introduction to Spark — An End to End Example, DataFrames and SQL (pp.12-21)

explode

배열이나 맵을 담은 컬럼을 원소 단위로 행을 펼치는 함수. 배열은 원소 개수만큼 행이 늘어나고, 맵은 key/value 두 컬럼으로 펼쳐진다.
null 다루기와 복합 타입(구조체·배열·맵) · Chapter 6: Working with Nulls in Data, Working with Complex Types 절 (PDF pp.111-119)

expr()

문자열로 표현된 컬럼 참조나 트랜스포메이션을 파싱해 Column 표현식으로 만들어주는 함수. col()보다 유연하며 SQL과 동일한 논리 트리로 컴파일된다.
DataFrame 스키마 정의와 컬럼·표현식 · Chapter 5: Basic Structured Operations - Schemas, Columns and Expressions, Records and Rows 절 (PDF pp.54-63)

External Shuffle Service

워커 노드에 executor와 독립적으로 상시 떠서 셔플 파일을 서빙하는 프로세스. executor가 회수/재시작돼도 셔플 데이터를 계속 제공할 수 있게 해준다.
Executor·Driver 자원 할당 메커니즘과 효율적 사이징 · 웹 리서치 종합 — spark-submit 설정 가이드, executor 사이징 경험칙, Dynamic Allocation 공식 문서

from_json / to_json

to_json은 StructType 컬럼을 JSON 문자열로 직렬화하고, from_json은 지정한 스키마에 맞춰 JSON 문자열을 다시 구조화된 컬럼으로 역직렬화한다.
JSON 다루기와 사용자 정의 함수(UDF) · Chapter 6: Working with JSON, User-Defined Functions 절 (PDF pp.119-126)

Generated Column

GENERATED ALWAYS AS (표현식)으로 같은 테이블의 다른 컬럼 값에서 자동 계산되는 컬럼. 파티션 키로 쓰면, 사용자가 그 파티션 컬럼을 직접 필터링하지 않아도 원본 컬럼 필터로부터 파티션 프루닝이 자동 유도된다.
Delta Lake Generated Columns — 파티션 필터를 자동으로 유도한다 · Databricks 공식문서 Delta Lake generated columns

get_json_object / json_tuple

JSON 문자열 컬럼에서 값을 조회하는 함수. get_json_object는 JSON 경로 표현식으로 임의 깊이를 조회하고, json_tuple은 한 단계만 중첩된 JSON에서 여러 키를 동시에 꺼낸다.
JSON 다루기와 사용자 정의 함수(UDF) · Chapter 6: Working with JSON, User-Defined Functions 절 (PDF pp.119-126)

GraphFrames

Spark의 Structured API 위에서 그래프(정점·엣지) 분석을 손쉽게 할 수 있게 하는 패키지. GraphX를 기반으로 한다.
Spark 패키지 생태계와 GraphFrames · Chapter 3: A Tour of Spark's Toolset - Spark's Ecosystem and Packages, GraphFrames (pp.38-43)

GraphX

Spark의 원조 그래프 분석 라이브러리로, GraphFrames가 이 위에 구축되어 PageRank 등 내장 알고리즘을 제공받는다.
Spark 패키지 생태계와 GraphFrames · Chapter 3: A Tour of Spark's Toolset - Spark's Ecosystem and Packages, GraphFrames (pp.38-43)

GroupState

mapGroupsWithState/flatMapGroupsWithState의 상태 갱신 함수가 이전 상태를 받아 읽고·갱신·삭제할 수 있게 해주는 타입. 세 가지 타임아웃 방식(없음/처리시간/이벤트시간) 중 하나를 지정해 그룹별 상태 만료를 제어한다.
mapGroupsWithState/flatMapGroupsWithState — GroupState로 임의의 상태 로직 짜기 · The Internals of Spark Structured Streaming — mapGroupsWithState

Lineage(계보)

RDD를 만들어낸 일련의 트랜스포메이션 기록. 파티션 유실 시 이 기록을 따라 원본부터 재계산해 복구한다.
Spark 핵심 아키텍처 (Driver/Executor/DAG/RDD) · spark_ref_01.md Q1-10 (Core Concepts & Architecture)

Liquid Clustering

CLUSTER BY로 클러스터링 컬럼을 지정하는 Delta Lake의 최신 테이블 레이아웃 전략. 전통 파티셔닝·ZORDER를 대체하며, 클러스터링 컬럼을 언제든 바꿀 수 있고 이미 클러스터링된 파일은 명시적으로 지시하지 않는 한 재작업하지 않는다는 유연성이 특징이다.
Delta Lake Liquid Clustering — 파티션도 Z-Order도 아닌 세 번째 방식 · Delta Lake 공식 블로그 Liquid Clustering

mapInPandas

pandas.DataFrame 이터레이터를 다른 pandas.DataFrame 이터레이터로 변환하는 PySpark DataFrame 메서드. groupBy() 없이 파티션 단위로 동작하며, 입력과 출력 배치의 개수·크기가 서로 달라도 된다.
mapInPandas — 그룹 없이 파티션 단위로 pandas 변환을 적용한다 · Apache Spark 공식문서 pyspark.sql.DataFrame.mapInPandas

maxFilesPerTrigger

스트리밍 읽기 시 한 트리거마다 읽어들일 최대 파일 수를 제한하는 옵션. 데모에서 스트리밍 유입을 흉내 낼 때 쓰이며 실제 운영에서는 보통 생략한다.
Structured Streaming 첫걸음 — 배치를 스트리밍으로 · Chapter 3: A Tour of Spark's Toolset - Structured Streaming (pp.26-32)

memoryOverhead

JVM 힙 밖에서 executor 프로세스가 실제로 쓰는 메모리(네이티브 라이브러리, 스레드 스택, 오프힙 버퍼 등)에 대비해 클러스터 매니저에 추가로 요청하는 여유분.
Executor·Driver 자원 할당 메커니즘과 효율적 사이징 · 웹 리서치 종합 — spark-submit 설정 가이드, executor 사이징 경험칙, Dynamic Allocation 공식 문서

MLlib

전처리, 모델 학습, 예측을 대규모 데이터에서 수행할 수 있게 하는 Spark의 내장 머신러닝 라이브러리.
MLlib로 배우는 Spark 머신러닝 파이프라인 · Chapter 3: A Tour of Spark's Toolset - Machine Learning and Advanced Analytics (pp.32-38)

MLWriter/MLReader

MLlib 파이프라인/모델을 디스크에 저장(save)하고 다시 불러오는(load) 유틸리티 클래스. Scala/Java/Python/R 중 어떤 언어로 저장했든 다른 언어에서 불러올 수 있고, 이후 Spark 버전에서도 하위 호환을 유지한다.
ML Pipeline 모델 영속화 — 언어 경계를 넘나드는 save/load · Apache Spark 공식 문서 ML Pipelines — Persistence

multipleWatermarkPolicy

쿼리에 여러 워터마크(예: Stream-Stream Join의 양쪽 입력)가 있을 때 이를 하나의 전역 워터마크로 합치는 정책. min(기본값, 가장 느린 스트림 기준, 안전하지만 지연 가능)과 max(가장 빠른 스트림 기준, 지연은 적지만 느린 스트림 데이터를 공격적으로 버림) 중 선택한다.
다중 워터마크 정책 — 여러 스트림의 워터마크가 다르면 무엇을 기준으로 삼는가 · Apache Spark 공식문서 Structured Streaming Programming Guide

na 서브패키지

DataFrame의 null 처리 전용 API(DataFrameNaFunctions). drop/fill/replace 세 가지 주요 동작을 제공한다.
null 다루기와 복합 타입(구조체·배열·맵) · Chapter 6: Working with Nulls in Data, Working with Complex Types 절 (PDF pp.111-119)

narrow dependency

각 입력 파티션이 오직 하나의 출력 파티션에만 기여하는 트랜스포메이션(예: where/filter). 파이프라이닝으로 메모리 내에서 처리된다.
트랜스포메이션, 지연 평가, 액션과 Spark UI · Chapter 2: A Gentle Introduction to Spark — Transformations, Lazy Evaluation, Actions, Spark UI (pp.9-11)

Narrow Transformation

부모 파티션 하나가 자식 파티션 하나에만 대응되어 셔플 없이 처리되는 트랜스포메이션(예: map, filter).
RDD·DataFrame·Dataset와 데이터 처리 · spark_ref_01.md Q11-20 (Data Structures & APIs)

OneHotEncoder

정수 인덱스로 표현된 카테고리를 카테고리별 boolean 컬럼으로 펼쳐 잘못된 서열 관계를 제거하는 변환기.
MLlib로 배우는 Spark 머신러닝 파이프라인 · Chapter 3: A Tour of Spark's Toolset - Machine Learning and Advanced Analytics (pp.32-38)

PageRank

노드가 받는 링크(엣지)의 수와 질을 근거로 그래프 내 노드의 상대적 중요도를 추정하는 알고리즘.
Spark 패키지 생태계와 GraphFrames · Chapter 3: A Tour of Spark's Toolset - Spark's Ecosystem and Packages, GraphFrames (pp.38-43)

pandas API on Spark(pyspark.pandas)

pandas와 호환되는 문법을 제공하면서 실제 연산은 Spark 클러스터에 분산 실행하는 PySpark 내장 API. 별도 프로젝트였던 Koalas가 PySpark 안으로 흡수돼 이 이름이 됐다.
pandas API on Spark — Koalas가 PySpark 안으로 흡수된 이유 · Apache Spark 공식 문서 Migrating from Koalas to pandas API on Spark

persist()

cache()보다 유연하게 메모리·디스크 등 다양한 저장 레벨을 지정해 데이터를 저장하는 메서드. 데이터가 메모리 용량을 초과할 때 사용한다.
Dataset과 캐싱 — 타입 안전 API와 반복 접근 최적화 · Chapter 3: A Tour of Spark's Toolset - 개요, Datasets, Caching Data for Faster Access (pp.22-26)

Pipeline

여러 변환기·추정기 단계를 순서대로 묶어 fit/transform을 일관되게 재사용할 수 있게 하는 MLlib 구성 요소.
MLlib로 배우는 Spark 머신러닝 파이프라인 · Chapter 3: A Tour of Spark's Toolset - Machine Learning and Advanced Analytics (pp.32-38)

Predicate Pushdown

필터 조건을 데이터 소스 스캔 단계로 내려보내 불필요한 I/O를 줄이는 최적화.
성능 튜닝과 최적화 (스큐·셔플·Catalyst·Tungsten) · spark_ref_01.md Q21-30 (Performance Tuning & Optimization) + FAQ(파티셔닝/브로드캐스트 조인/성능 최적화/cache·persist/데이터 스큐) 종합, 수치 오류 정정 포함

Project Tungsten

Off-heap 메모리 관리와 Whole-Stage Code Generation으로 Spark의 CPU/메모리 효율을 높이는 프로젝트.
성능 튜닝과 최적화 (스큐·셔플·Catalyst·Tungsten) · spark_ref_01.md Q21-30 (Performance Tuning & Optimization) + FAQ(파티셔닝/브로드캐스트 조인/성능 최적화/cache·persist/데이터 스큐) 종합, 수치 오류 정정 포함

Python Data Source API

Spark 4.0에서 도입된, Python으로 커스텀 데이터소스·싱크를 구현할 수 있게 하는 API(pyspark.sql.datasource). DataSource/DataSourceReader 클래스를 서브클래싱해 구현하며, spark-learn-74의 Java 기반 DataSource V2를 Python에서 직접 쓸 수 있게 연 것이다.
Python Data Source API — Scala 없이 커스텀 데이터소스를 만든다 · Apache Spark 공식문서 Python Data Source API tutorial

rangeBetween

윈도우 프레임의 경계를 물리적 행 개수가 아니라 ORDER BY 기준 컬럼의 값 차이로 정하는 방식. 동점 행을 전부 포함시킬 수 있어 rowsBetween과 다르게 동작한다.
Window Function Frame 경계 — rowsBetween과 rangeBetween의 차이 · Apache Spark 공식 문서 pyspark.sql.Window.rowsBetween/rangeBetween

RDD

불변이며 파티션 단위로 클러스터에 분산된 Spark의 기본 데이터 구조. lineage를 통해 장애 시 재계산으로 복구된다.
Spark 핵심 아키텍처 (Driver/Executor/DAG/RDD) · spark_ref_01.md Q1-10 (Core Concepts & Architecture)

RDD(Resilient Distributed Dataset)

DataFrame·Dataset·SQL 테이블과 함께 Spark가 제공하는 핵심 분산 데이터 추상화 중 하나로, 파티션을 더 낮은 수준에서 직접 다룰 수 있는 인터페이스.
SparkSession, DataFrame, 파티션 · Chapter 2: A Gentle Introduction to Spark — Starting Spark, SparkSession, DataFrames, Partitions (pp.7-9)

RelationalGroupedDataset

groupBy 호출 직후 얻는 중간 결과 타입. 그루핑 정보만 지정된 상태로, 집계 함수를 추가 지정해야 조회 가능한 DataFrame이 된다.
End-to-End 예제로 보는 실행 계획 (항공편 데이터) · Chapter 2: A Gentle Introduction to Spark — An End to End Example, DataFrames and SQL (pp.12-21)

RESTORE TABLE

Delta 테이블을 지정한 과거 버전·시점으로 영구적으로 되돌리는 명령. spark-learn-68의 Time Travel이 과거를 '조회'만 하는 것과 달리, 테이블의 현재 상태 자체를 그 시점으로 되돌린다. 히스토리 자체를 지우지 않고 트랜잭션 로그를 갱신하는 메타데이터 전용 작업이다.
RESTORE TABLE — Time Travel은 '보기'만, RESTORE는 실제로 '되돌리기' · Databricks 공식문서 RESTORE

RocksDBStateStoreProvider

Structured Streaming의 상태 저장소 구현체(Spark 3.2+). 상태 데이터를 JVM 힙 대신 네이티브 메모리+로컬 디스크에 저장해, 수백만 키 규모에서 기본 구현(HDFSBackedStateStore)이 겪는 GC 압박을 회피한다.
RocksDB State Store Provider — 대용량 스트리밍 상태의 GC 압박 해결 · Apache Spark 공식 문서 Structured Streaming Programming Guide — State Store

Row

Spark의 내부 최적화 인메모리 포맷을 나타내는 타입. 모든 언어에서 DataFrame의 레코드로 쓰이며, 물리적 바이트 배열을 표현한다.
Catalyst 타입 시스템: untyped DataFrame vs typed Dataset · Chapter 4: Overview of Structured Spark Types - Catalyst, DataFrame/Dataset 타입 차이, Columns, Rows 절 (PDF pp.45-47)

Salting

조인 키에 무작위 접두사를 붙여 스큐된 키를 여러 파티션으로 분산시키는 기법.
성능 튜닝과 최적화 (스큐·셔플·Catalyst·Tungsten) · spark_ref_01.md Q21-30 (Performance Tuning & Optimization) + FAQ(파티셔닝/브로드캐스트 조인/성능 최적화/cache·persist/데이터 스큐) 종합, 수치 오류 정정 포함

schema-on-read

스키마를 미리 정의하지 않고 데이터 소스를 읽을 때 자동으로 타입을 추론하는 방식.
DataFrame 스키마 정의와 컬럼·표현식 · Chapter 5: Basic Structured Operations - Schemas, Columns and Expressions, Records and Rows 절 (PDF pp.54-63)

Shuffle

데이터를 파티션 간 재분배하는 과정. 직렬화·디스크 I/O·네트워크 전송을 수반해 Spark에서 가장 비용이 큰 연산이다.
RDD·DataFrame·Dataset와 데이터 처리 · spark_ref_01.md Q11-20 (Data Structures & APIs)

Shuffle Tracking

Spark 3.0부터 도입된 대안 메커니즘 — ESS 없이도 executor가 서빙 중인 셔플 데이터를 추적해, 그 데이터가 더 이상 필요 없어질 때까지 Dynamic Allocation의 executor 회수를 보류한다.
Executor·Driver 자원 할당 메커니즘과 효율적 사이징 · 웹 리서치 종합 — spark-submit 설정 가이드, executor 사이징 경험칙, Dynamic Allocation 공식 문서

SimpleDateFormat

Java의 날짜/시간 포맷 표준. Spark의 unix_timestamp 등에서 비표준 날짜 문자열을 파싱할 때 지정하는 포맷 패턴(예: yyyy-dd-MM)의 기준이 된다.
날짜와 타임스탬프 다루기 · Chapter 6: Working with Dates and Timestamps 절 (PDF pp.105-111)

skewedPartitionFactor / skewedPartitionThresholdInBytes

스큐 파티션 판정 기준. 중간값 대비 배수(기본 5.0)와 절대 크기(기본 256MB) 두 조건을 동시에 만족해야 스큐로 판정한다.
AQE(Adaptive Query Execution) 세부 설정 완전정복 · Spark 4.2.0 공식 문서 sql-performance-tuning.html — AQE 설정 전체 목록

small files problem

작은 파일이 과도하게 많이 쌓여, 파일마다 붙는 메타데이터·오픈 비용 때문에 쿼리 성능이 저하되는 문제. 잦은 적재 주기와 과도한 셔플 파티션 수가 주요 원인이다.
AQE를 껐을 때와 켰을 때 — small files problem을 숫자로 확인하기 · PySpark Tutorial: Build a Real Pipeline and Read the Spark UI — "The cost of losing that safety net shows up on disk" 구간 (22~24페이지)

Sort-Merge Join

조인 키로 양쪽 테이블을 셔플·정렬한 뒤 병합하는 대용량 테이블 조인 전략. 사전 버킷팅+정렬로 셔플/정렬을 생략할 수 있다.
실전 코딩 시나리오 (조인·UDF·파티셔닝) · spark_ref_01.md Q41-50 (Advanced Scenarios & Coding Logic)

sortWithinPartitions

전체 데이터를 셔플해 정렬하는 대신 각 파티션 내부에서만 정렬을 수행하는 최적화용 메서드.
행 필터링, 고유값, 샘플링, 합치기, 정렬 · Chapter 5: Filtering Rows, Getting Unique Rows, Random Samples/Splits, Concatenating and Appending Rows, Sorting Rows 절 (PDF pp.75-81)

Spark Packages

커뮤니티가 spark-packages.org 등에 배포하는 Spark 확장 라이브러리 생태계. 특정 도메인·기능에 최적화된 Spark 활용을 제공한다.
Spark 패키지 생태계와 GraphFrames · Chapter 3: A Tour of Spark's Toolset - Spark's Ecosystem and Packages, GraphFrames (pp.38-43)

spark-submit

인터랙티브 콘솔 없이 미리 작성된 사용자 코드를 하나의 독립된 애플리케이션으로 클러스터에 제출·실행하는 방식.
SparkSession, DataFrame, 파티션 · Chapter 2: A Gentle Introduction to Spark — Starting Spark, SparkSession, DataFrames, Partitions (pp.7-9)

spark.eventLog.enabled/spark.eventLog.dir

애플리케이션 실행 중 발생한 이벤트(잡·스테이지·태스크 등)를 파일로 기록해 History Server가 나중에 UI를 재구성할 수 있게 하는 설정. eventLog.dir는 HDFS나 로컬 경로를 지정한다.
History Server — 잡이 끝난 뒤에도 Spark UI를 다시 열어본다 · Apache Spark 공식문서 Monitoring and Instrumentation

spark.sql.adaptive.coalescePartitions.parallelismFirst

true(기본)면 파티션 크기 목표보다 병렬성 확보를 우선해 작은 파티션도 잘 합치지 않는다. false면 advisoryPartitionSizeInBytes 목표 크기에 맞춰 더 적극적으로 병합한다.
AQE(Adaptive Query Execution) 세부 설정 완전정복 · Spark 4.2.0 공식 문서 sql-performance-tuning.html — AQE 설정 전체 목록

spark.sql.execution.pythonUDF.arrow.enabled

pandas UDF가 아닌 일반 스칼라 Python UDF에도 Arrow 기반 배치 전송을 적용하는 설정. 함수를 pandas UDF로 재작성하지 않고도 데이터 전송 구간만 가속한다.
PySpark UDF의 Arrow 최적화 — 설정과 UDAF 대안 · Apache Spark 공식 문서 Apache Arrow in PySpark 사용자 가이드

spark.sql.files.openCostInBytes

파일 하나를 여는 데 드는 비용을 가상의 바이트 크기로 환산한 값(기본 4MB). 작은 파일이 많을수록 이 값이 누적되어 실제 데이터량보다 파티션이 더 잘게 나뉘는 원인이 된다.
셔플·직렬화·압축·스케줄링 설정 총정리 — 실전 튜닝 체크리스트 · Spark 4.2.0 공식 문서 configuration.html — Serialization/Compression/Scheduling 설정 종합

spark.sql.shuffle.partitions

DataFrame/SQL API에서 셔플 발생 시 결과 파티션 개수를 지정하는 설정. 기본값은 200이며 RDD의 파티셔너 클래스 선택과는 별개다.
70개 질문 블로그로 보는 추가 확인 사항 — 파티셔너와 튜닝 체크리스트 · 70 Spark Interview Questions for Data Engineers (전체 50문항 + FAQ)

DataFrame/SQL 셔플이 일어날 때 결과를 나눌 파티션 개수. 기본값 200은 결과 행 수와 무관하게 고정 적용된다.
groupBy는 셔플이다 — spark.sql.shuffle.partitions 200과 AQE의 파티션 재조정 · PySpark Tutorial: Build a Real Pipeline and Read the Spark UI — "One groupBy, 200 tasks, and 151 files nobody wants" 구간 (17~22페이지)

SparkSession

드라이버 프로세스가 사용자에게 드러나는 형태로, 사용자 정의 조작을 클러스터 전역에 실행시키는 진입점. 인터랙티브 콘솔에서는 spark 변수로 제공된다.
SparkSession, DataFrame, 파티션 · Chapter 2: A Gentle Introduction to Spark — Starting Spark, SparkSession, DataFrames, Partitions (pp.7-9)

Spark 2.0부터 SparkContext/SQLContext/HiveContext를 하나로 통합한 Spark 상호작용의 단일 진입점.
Spark 핵심 아키텍처 (Driver/Executor/DAG/RDD) · spark_ref_01.md Q1-10 (Core Concepts & Architecture)

Speculative Execution

비정상적으로 느린 태스크를 감지해 다른 노드에서 복제 실행하고, 먼저 끝난 결과를 채택하는 메커니즘. 기본값은 비활성(false)이다.
실전 코딩 시나리오 (조인·UDF·파티셔닝) · spark_ref_01.md Q41-50 (Advanced Scenarios & Coding Logic)

Stream-Stream Join 상태 버퍼링

두 스트림을 조인할 때 양쪽 입력을 각각 스트리밍 상태로 저장해두고 상대편의 미래 매칭 레코드를 기다리는 메커니즘. 워터마크/시간 조건이 없으면 상태가 무기한 쌓인다.
Stream-Stream Join — 두 스트림을 실시간으로 맞춰 붙이기 · Apache Spark 공식문서 Structured Streaming Programming Guide — Join Operations

struct

여러 컬럼을 하나로 묶어 중첩된 DataFrame처럼 다루는 복합 타입. dot 문법(col.field)으로 내부 필드에 접근한다.
null 다루기와 복합 타입(구조체·배열·맵) · Chapter 6: Working with Nulls in Data, Working with Complex Types 절 (PDF pp.111-119)

StructField

스키마를 구성하는 개별 필드. 이름, 데이터 타입, nullable 여부(기본값 true)를 갖는다.
DataFrame 스키마 정의와 컬럼·표현식 · Chapter 5: Basic Structured Operations - Schemas, Columns and Expressions, Records and Rows 절 (PDF pp.54-63)

StructType

DataFrame의 스키마를 나타내는 타입. 여러 StructField의 시퀀스로 구성되며 동일한 이름의 필드는 허용되지 않는다.
DataFrame 스키마 정의와 컬럼·표현식 · Chapter 5: Basic Structured Operations - Schemas, Columns and Expressions, Records and Rows 절 (PDF pp.54-63)

Structured Streaming

배치 DataFrame/SQL 연산을 증분(incremental) 처리 방식으로 재사용해 실행하는 Spark의 스트림 처리 엔진. Spark 2.2부터 프로덕션 레디로 제공된다.
Structured Streaming 첫걸음 — 배치를 스트리밍으로 · Chapter 3: A Tour of Spark's Toolset - Structured Streaming (pp.26-32)

Spark SQL 엔진 기반의 스트림 처리 엔진. 스트림을 계속 append되는 무한 테이블로 모델링하며 배치와 동일한 API를 사용한다.
운영과 배포 (클러스터 매니저·장애 복구·직렬화) · spark_ref_01.md Q31-40 (Operations & Deployment)

TimestampType

Spark의 날짜+시간 타입. 초 단위까지만 정밀도를 지원하며, 그보다 세밀한 값은 강제 변환 시 제거된다.
날짜와 타임스탬프 다루기 · Chapter 6: Working with Dates and Timestamps 절 (PDF pp.105-111)

translate

두 문자열을 인덱스별로 1:1 매핑해 문자 단위 치환을 수행하는 함수. 정규식 없이 특정 문자들을 다른 문자로 바꿀 때 쓴다.
문자열과 정규표현식 다루기 · Chapter 6: Working with Strings, Regular Expressions 절 (PDF pp.96-105)

Trigger.AvailableNow()

Spark 3.3부터 제공되는 Structured Streaming 트리거. 현재 소스에 쌓인 데이터를 여러 마이크로배치로 나눠 처리한 뒤 자동 종료해, 스트리밍 코드를 배치처럼 실행할 수 있게 한다. 이전의 Trigger.Once() 대신 사용이 권장된다.
언제 Spark 배치, 언제 Structured Streaming인가 — 실무 판단 체크리스트 · Batch vs Stream Processing: The Plain-English Guide (2026) — freshness/failure handling/cost/output nature 및 When to Use 체크리스트 구간(7~10페이지)을 Spark 파이프라인 맥락으로 재구성

UDF (User Defined Function)

사용자가 정의한 함수. PySpark 일반 UDF는 JVM↔Python 직렬화 오버헤드가 크며, Arrow 기반 pandas UDF가 더 효율적인 대안이다.
실전 코딩 시나리오 (조인·UDF·파티셔닝) · spark_ref_01.md Q41-50 (Advanced Scenarios & Coding Logic)

UDF (User-Defined Function)

사용자가 Python/Scala 등으로 작성해 등록하는 커스텀 변환 함수. 레코드(행) 단위로 실행되며 하나 이상의 컬럼을 입력받아 하나 이상의 컬럼을 반환한다.
JSON 다루기와 사용자 정의 함수(UDF) · Chapter 6: Working with JSON, User-Defined Functions 절 (PDF pp.119-126)

unbounded table (무계 테이블)

Structured Streaming이 스트림 소스를 다루는 모델. 데이터가 계속 도착하는 테이블로 스트림을 취급하고, 배치용 DataFrame 연산을 그 테이블에 반복 적용한다.
배치와 스트림, 하나의 엔진으로 — Spark 관점에서 재구성한 처리 모델 비교 · Batch vs Stream Processing: The Plain-English Guide (2026) — 전체(1~7페이지, assumption/time semantics/computation model/state 구간)를 Spark 아키텍처 관점에서 재구성

union

스키마와 컬럼 수가 동일한 두 DataFrame을 이어 붙이는 연산. DataFrame이 불변이므로 행을 추가하는 유일한 방법이다.
행 필터링, 고유값, 샘플링, 합치기, 정렬 · Chapter 5: Filtering Rows, Getting Unique Rows, Random Samples/Splits, Concatenating and Appending Rows, Sorting Rows 절 (PDF pp.75-81)

VACUUM

Delta 테이블에서 더 이상 참조되지 않으면서 보존 기간(기본 7일)보다 오래된 데이터 파일을 삭제하는 명령. 보존 기간을 너무 짧게 잡으면 동시 실행 중인 리더가 실패하거나 테이블이 손상될 수 있어 기본적으로 안전장치가 걸려 있다.
Delta Lake 유지보수 — OPTIMIZE/ZORDER로 압축·정렬, VACUUM으로 청소 · Delta Lake 공식 문서 Compaction and Z-Ordering, Utility commands

varargs

배열/리스트를 함수의 가변 인자로 풀어서 전달하는 언어 기능. Spark에서 동적 개수의 컬럼 표현식을 select에 넘길 때 활용한다.
문자열과 정규표현식 다루기 · Chapter 6: Working with Strings, Regular Expressions 절 (PDF pp.96-105)

VARIANT 타입

Spark 4.0에서 도입된 반정형 데이터용 타입. JSON을 적재 시점에 한 번만 파싱해 오프셋 기반 탐색이 가능한 이진 형식으로 저장하며, Parquet·Delta Lake와 공유하는 공개(open) 인코딩 명세를 따른다.
Spark 4.0 VARIANT 타입 — JSON을 매번 다시 파싱하지 않는다 · Databricks 공식 블로그 Introducing the Open Variant Data Type in Delta Lake and Apache Spark

VectorAssembler

여러 피처 컬럼을 하나의 Vector 컬럼으로 결합해 MLlib 알고리즘의 입력 형식에 맞추는 변환기.
MLlib로 배우는 Spark 머신러닝 파이프라인 · Chapter 3: A Tour of Spark's Toolset - Machine Learning and Advanced Analytics (pp.32-38)

wide dependency / 셔플(Shuffle)

입력 파티션들이 여러 출력 파티션에 걸쳐 기여하는 트랜스포메이션으로, 클러스터 전역에 걸쳐 파티션을 주고받는 셔플을 유발하며 결과가 디스크에 기록된다.
트랜스포메이션, 지연 평가, 액션과 Spark UI · Chapter 2: A Gentle Introduction to Spark — Transformations, Lazy Evaluation, Actions, Spark UI (pp.9-11)

Wide Transformation

자식 파티션 계산에 여러 부모 파티션 데이터가 필요해 셔플을 유발하는 트랜스포메이션(예: groupByKey, join).
RDD·DataFrame·Dataset와 데이터 처리 · spark_ref_01.md Q11-20 (Data Structures & APIs)

계보(Lineage)

DataFrame에 적용된 트랜스포메이션들의 논리적 순서 기록. 동일 입력에 대해 임의 파티션을 재계산할 수 있게 해준다.
End-to-End 예제로 보는 실행 계획 (항공편 데이터) · Chapter 2: A Gentle Introduction to Spark — An End to End Example, DataFrames and SQL (pp.12-21)

드라이버 프로세스(Driver Process)

클러스터의 한 노드에서 애플리케이션 정보를 유지하고 사용자 프로그램에 응답하며, 익스큐터에 걸친 작업을 분석·분배·스케줄링하는 Spark 애플리케이션의 핵심 프로세스.
Spark 클러스터 아키텍처와 언어 API · Chapter 2: A Gentle Introduction to Spark — Spark's Basic Architecture, Spark Applications, Spark's Language APIs (pp.3-7)

로컬 모드(Local Mode)

드라이버와 익스큐터가 클러스터가 아닌 한 대의 머신에서 스레드로 실행되는 Spark 실행 모드.
Spark 클러스터 아키텍처와 언어 API · Chapter 2: A Gentle Introduction to Spark — Spark's Basic Architecture, Spark Applications, Spark's Language APIs (pp.3-7)

부분 합계(Partial Aggregation)

합산처럼 교환법칙이 성립하는 집계를 파티션 단위로 먼저 부분 계산(partial_sum)한 뒤 셔플을 거쳐 최종 합산하는 2단계 최적화 방식.
End-to-End 예제로 보는 실행 계획 (항공편 데이터) · Chapter 2: A Gentle Introduction to Spark — An End to End Example, DataFrames and SQL (pp.12-21)

상태 저장소(state store)

Structured Streaming이 마이크로배치 사이에 집계·조인 등 상태 기반 연산의 중간 결과를 이어가기 위해 체크포인트 위치에 유지하는 저장소.
배치와 스트림, 하나의 엔진으로 — Spark 관점에서 재구성한 처리 모델 비교 · Batch vs Stream Processing: The Plain-English Guide (2026) — 전체(1~7페이지, assumption/time semantics/computation model/state 구간)를 Spark 아키텍처 관점에서 재구성

스키마 추론(Schema Inference)

CSV처럼 완전한 정형 데이터가 아닌 소스를 읽을 때, Spark가 데이터 일부를 읽어 각 컬럼의 타입을 추측하는 기능.
End-to-End 예제로 보는 실행 계획 (항공편 데이터) · Chapter 2: A Gentle Introduction to Spark — An End to End Example, DataFrames and SQL (pp.12-21)

스키마(Schema)

DataFrame을 구성하는 컬럼 목록과 각 컬럼의 타입 정보.
SparkSession, DataFrame, 파티션 · Chapter 2: A Gentle Introduction to Spark — Starting Spark, SparkSession, DataFrames, Partitions (pp.7-9)

DataFrame의 컬럼명과 타입을 정의하는 메타데이터. 수동 정의하거나 schema-on-read로 데이터 소스에서 추론한다.
Structured API의 세 가지 얼굴: DataFrame, Dataset, SQL · Chapter 4: Structured API Overview - 도입부, DataFrames and Datasets, Schemas 절 (PDF pp.44-47)

액션(Action)

트랜스포메이션 계획으로부터 실제 계산을 촉발시키는 연산. 콘솔 표시, 네이티브 객체 수집, 외부 소스 쓰기 세 종류가 있다.
트랜스포메이션, 지연 평가, 액션과 Spark UI · Chapter 2: A Gentle Introduction to Spark — Transformations, Lazy Evaluation, Actions, Spark UI (pp.9-11)

DAG 실행을 트리거해 잡(job)을 스테이지·태스크로 쪼개 클러스터에서 실제 계산을 수행시키는 연산.
Structured API의 세 가지 얼굴: DataFrame, Dataset, SQL · Chapter 4: Structured API Overview - 도입부, DataFrames and Datasets, Schemas 절 (PDF pp.44-47)

이벤트 타임(event time)

데이터 레코드 자체에 기록된 발생 시각. 데이터가 Spark에 도달해 처리되는 시각인 처리 시간(processing time)과 구분된다.
Structured Streaming 첫걸음 — 배치를 스트리밍으로 · Chapter 3: A Tour of Spark's Toolset - Structured Streaming (pp.26-32)

익스큐터(Executor)

드라이버가 할당한 코드를 실행하고 실행 상태를 드라이버에 보고하는 프로세스.
Spark 클러스터 아키텍처와 언어 API · Chapter 2: A Gentle Introduction to Spark — Spark's Basic Architecture, Spark Applications, Spark's Language APIs (pp.3-7)

지연 평가(Lazy Evaluation)

트랜스포메이션을 즉시 실행하지 않고 계획으로 쌓아두었다가, 액션 호출 시점에 최적화된 물리 실행 계획으로 컴파일해 실행하는 Spark의 실행 방식.
트랜스포메이션, 지연 평가, 액션과 Spark UI · Chapter 2: A Gentle Introduction to Spark — Transformations, Lazy Evaluation, Actions, Spark UI (pp.9-11)

지연 평가와 Job 발생

트랜스포메이션은 Jobs 페이지에 아무 항목도 만들지 않고, count()·show()·collect() 같은 액션이 호출되어야 비로소 Job이 하나 생성되어 Jobs 페이지에 나타난다.
지연 평가는 실제로 Jobs 탭에 어떻게 찍히는가 · PySpark Tutorial: Build a Real Pipeline and Read the Spark UI — Spark ignored your first five lines 구간, Jobs 페이지 스크린샷

클러스터 매니저(Cluster Manager)

물리 머신을 통제하고 Spark 애플리케이션에 자원을 배정하는 컴포넌트. Standalone, YARN, Mesos 등이 있다.
Spark 클러스터 아키텍처와 언어 API · Chapter 2: A Gentle Introduction to Spark — Spark's Basic Architecture, Spark Applications, Spark's Language APIs (pp.3-7)

클러스터(Cluster)

여러 머신의 자원을 하나처럼 묶어 사용할 수 있게 하는 머신 그룹.
Spark 클러스터 아키텍처와 언어 API · Chapter 2: A Gentle Introduction to Spark — Spark's Basic Architecture, Spark Applications, Spark's Language APIs (pp.3-7)

트랜스포메이션(Transformation)

불변인 DataFrame을 원하는 형태로 바꾸는 방법을 지정하는 지시. 즉시 실행되지 않고 지연 평가된다.
트랜스포메이션, 지연 평가, 액션과 Spark UI · Chapter 2: A Gentle Introduction to Spark — Transformations, Lazy Evaluation, Actions, Spark UI (pp.9-11)

새 DataFrame/Dataset을 만들어내는 지연 평가 연산. 호출 즉시 실행되지 않고 DAG에 추가된다.
Structured API의 세 가지 얼굴: DataFrame, Dataset, SQL · Chapter 4: Structured API Overview - 도입부, DataFrames and Datasets, Schemas 절 (PDF pp.44-47)

파티션 프루닝(partition pruning)

쿼리 필터 조건과 일치하지 않는 파티션 디렉터리를 아예 읽지 않고 건너뛰는 최적화. partitionBy로 저장한 컬럼을 필터할 때 적용된다.
partitionBy와 파티션 프루닝 — 어떤 컬럼을 파티션 키로 고를 것인가 · PySpark Tutorial: Build a Real Pipeline and Read the Spark UI — "Write it out, then read it back like a stranger would" 구간 (24~26페이지)

파티션(Partition)

클러스터의 한 물리 머신에 위치한 로우들의 집합. 익스큐터들이 병렬로 작업할 수 있도록 데이터를 쪼갠 단위.
SparkSession, DataFrame, 파티션 · Chapter 2: A Gentle Introduction to Spark — Starting Spark, SparkSession, DataFrames, Partitions (pp.7-9)

프리디킷 푸시다운(Predicate Pushdown)

지연 평가 최적화의 한 예로, 뒤쪽에 걸린 필터 조건을 원본 데이터 접근 시점까지 앞당겨 적용해 불필요한 데이터 읽기를 줄이는 기법.
트랜스포메이션, 지연 평가, 액션과 Spark UI · Chapter 2: A Gentle Introduction to Spark — Transformations, Lazy Evaluation, Actions, Spark UI (pp.9-11)

피어슨 상관계수(Pearson Correlation Coefficient)

두 숫자형 컬럼 사이의 선형 상관관계 정도를 나타내는 통계량. corr 함수 또는 df.stat.corr로 계산한다.
숫자 다루기: 산술 연산과 통계 함수 · Chapter 6: Working with Numbers 절 (PDF pp.91-96)

필터 평탄화(flatten)

여러 개의 순차적인 and 조건 필터를 Spark가 내부적으로 하나의 필터 문장으로 합쳐 한 번에 평가하는 최적화 동작.
표현식 API 지도와 불리언(Boolean) 다루기 · Chapter 6: Working with Different Types of Data - Chapter Overview, Where to Look for APIs, Working with Booleans 절 (PDF pp.85-91)