← Spark 모듈로

Learn · Glossary

Spark 용어 사전

총 116개 용어

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/데이터 스큐) 종합, 수치 오류 정정 포함

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)

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)

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)

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)

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)

Lineage(계보)

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

maxFilesPerTrigger

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

MLlib

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

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)

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/데이터 스큐) 종합, 수치 오류 정정 포함

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)

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)

SimpleDateFormat

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

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.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)

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)

varargs

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

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)