← 홈

Apache Spark

⌘K
🤖
Claude Code AI 도구
🤗
Hugging Face AI 도구
🦜
LangChain AI 도구
🧠
Keras AI 도구
🦙
Ollama AI 도구
🐍
Python 프로그래밍 언어
🟨
JavaScript 프로그래밍 언어
🔷
TypeScript 프로그래밍 언어
⚛️
React 프로그래밍 언어
🐹
Go 프로그래밍 언어
🦀
Rust 프로그래밍 언어
📊
MATLAB 프로그래밍 언어
🗄️
SQL 프로그래밍 언어
⚙️
C/C++ 프로그래밍 언어
Java 프로그래밍 언어
🟣
C# 프로그래밍 언어
🍎
Swift 프로그래밍 언어
🟠
Kotlin 프로그래밍 언어
Next.js 프로그래밍 언어
💚
Vue.js 프로그래밍 언어
🔥
Svelte 프로그래밍 언어
🎨
Tailwind CSS 프로그래밍 언어
💚
Node.js 프로그래밍 언어
🌐
HTML 프로그래밍 언어
🎨
CSS/SCSS 프로그래밍 언어
🐘
PHP 프로그래밍 언어
💎
Ruby 프로그래밍 언어
🔴
Scala 프로그래밍 언어
📊
R 프로그래밍 언어
🎯
Dart 프로그래밍 언어
💧
Elixir 프로그래밍 언어
🌙
Lua 프로그래밍 언어
🐪
Perl 프로그래밍 언어
🅰️
Angular 프로그래밍 언어
🚂
Express.js 프로그래밍 언어
🐱
NestJS 프로그래밍 언어
🛤️
Ruby on Rails 프로그래밍 언어
◼️
GraphQL 프로그래밍 언어
🟪
Haskell 프로그래밍 언어
💚
Nuxt.js 프로그래밍 언어
🔷
SolidJS 프로그래밍 언어
htmx 프로그래밍 언어
💻
VS Code 개발 도구
🧠
PyCharm 개발 도구
📓
Jupyter 개발 도구
🧠
IntelliJ IDEA 개발 도구
💚
Neovim 개발 도구
🔮
Emacs 개발 도구
🔀
Git DevOps & CLI
🐳
Docker DevOps & CLI
☸️
Kubernetes DevOps & CLI
☁️
AWS CLI DevOps & CLI
🔄
GitHub Actions DevOps & CLI
🐧
Linux 명령어 DevOps & CLI
💻
Bash 스크립팅 DevOps & CLI
🌐
Nginx DevOps & CLI
📝
Vim DevOps & CLI
🔨
Makefile DevOps & CLI
🧪
Pytest DevOps & CLI
🪟
Windows DevOps & CLI
📦
패키지 매니저 DevOps & CLI
🍎
macOS DevOps & CLI
🏗️
Terraform DevOps & CLI
🔧
Ansible DevOps & CLI
Helm DevOps & CLI
🔨
Jenkins DevOps & CLI
🔥
Prometheus DevOps & CLI
📊
Grafana DevOps & CLI
💻
Zsh DevOps & CLI
🐟
Fish Shell DevOps & CLI
💙
PowerShell DevOps & CLI
🔄
Argo CD DevOps & CLI
🔀
Traefik DevOps & CLI
☁️
Azure CLI DevOps & CLI
☁️
Google Cloud CLI DevOps & CLI
📟
tmux DevOps & CLI
🔧
jq DevOps & CLI
✂️
sed DevOps & CLI
📊
awk DevOps & CLI
🌊
Apache Airflow DevOps & CLI
🔢
NumPy 데이터베이스 & 데이터
🐼
Pandas 데이터베이스 & 데이터
🔥
PyTorch 데이터베이스 & 데이터
🧠
TensorFlow 데이터베이스 & 데이터
📈
Matplotlib 데이터베이스 & 데이터
🐘
PostgreSQL 데이터베이스 & 데이터
🐬
MySQL 데이터베이스 & 데이터
🍃
MongoDB 데이터베이스 & 데이터
🔴
Redis 데이터베이스 & 데이터
🔍
Elasticsearch 데이터베이스 & 데이터
🤖
Scikit-learn 데이터베이스 & 데이터
👁️
OpenCV 데이터베이스 & 데이터
Apache Spark 데이터베이스 & 데이터
🪶
SQLite 데이터베이스 & 데이터
Supabase 데이터베이스 & 데이터
🔵
Neo4j 데이터베이스 & 데이터
📨
Apache Kafka 데이터베이스 & 데이터
🐰
RabbitMQ 데이터베이스 & 데이터
🔤
Regex 유틸리티
📝
Markdown 유틸리티
📄
LaTeX 유틸리티
🔐
SSH & GPG 유틸리티
🌐
curl & HTTP 유틸리티
📜
reStructuredText 유틸리티
🚀
Postman 유틸리티
🎬
FFmpeg 유틸리티
🖼️
ImageMagick 유틸리티
🔍
ripgrep 유틸리티
🔍
fzf 유틸리티
📗
Microsoft Excel 오피스 애플리케이션
📘
Microsoft Word 오피스 애플리케이션
📙
Microsoft PowerPoint 오피스 애플리케이션
📝
한컴 한글 한컴오피스
📽️
한컴 한쇼 한컴오피스
📊
한컴 한셀 한컴오피스
📄
Google 문서 Google Workspace
📊
Google 스프레드시트 Google Workspace
📽️
Google 프레젠테이션 Google Workspace
🔌
Cadence Virtuoso EDA & 하드웨어
⚙️
Synopsys EDA EDA & 하드웨어
💎
Verilog & VHDL EDA & 하드웨어
LTSpice EDA & 하드웨어
🔧
KiCad EDA & 하드웨어
📝
Notion 생산성 도구
💎
Obsidian 생산성 도구
💬
Slack 생산성 도구
🎮
Discord 생산성 도구
🎨
Figma 디자인 도구
📘
Confluence Atlassian
📋
Jira Atlassian
🃏
Jest 테스팅
Vitest 테스팅
🎭
Playwright 테스팅
🌲
Cypress 테스팅
🌐
Selenium 테스팅
💙
Flutter 모바일 개발
📱
React Native 모바일 개발
🍎
SwiftUI 모바일 개발
📱
Expo 모바일 개발
🐍
Django 웹 프레임워크
FastAPI 웹 프레임워크
🌶️
Flask 웹 프레임워크
🍃
Spring Boot 웹 프레임워크
🍸
Gin 웹 프레임워크
Vite 빌드 도구
📦
Webpack 빌드 도구
esbuild 빌드 도구
🐘
Gradle 빌드 도구
🪶
Maven 빌드 도구
🔧
CMake 빌드 도구
🎮
Unity 게임 개발
🤖
Godot 게임 개발
🔌
Arduino 임베디드 & IoT
🔍
Nmap 보안
🐕
Datadog 모니터링
📖
Swagger/OpenAPI 문서화
검색 결과가 없습니다
EN KO

🚀 설정 & SparkSession

⚙️ SparkSession

from pyspark.sql import SparkSession SparkSession 가져오기
spark = SparkSession.builder.appName("App").getOrCreate() 세션 생성
.master("local[*]") 로컬 모드 (모든 코어)
.config("spark.executor.memory", "4g") 실행기 메모리 설정
.config("spark.driver.memory", "2g") 드라이버 메모리 설정
spark.stop() 세션 중지
sc = spark.sparkContext SparkContext 얻기

📊 DataFrame 기본

DataFrame 생성

df = spark.read.csv("file.csv", header=True, inferSchema=True) CSV 읽기
df = spark.read.json("file.json") JSON 읽기
df = spark.read.parquet("file.parquet") Parquet 읽기
df = spark.createDataFrame(data, schema) Python 데이터에서
df = spark.createDataFrame(pandas_df) Pandas에서
df.write.csv("output.csv") CSV 쓰기
df.write.parquet("output.parquet") Parquet 쓰기

📋 DataFrame 정보

df.show() 처음 20행 표시
df.show(n, truncate=False) n행 표시 (잘림 없음)
df.printSchema() 스키마 출력
df.columns 열 이름
df.dtypes 열 타입
df.count() 행 수
df.describe().show() 통계

🔍 선택 & 필터링

📌 열 선택

df.select("col1", "col2") 열 선택
df.select(df.col1, df.col2) 선택 (Column 객체)
from pyspark.sql.functions import col col 함수 가져오기
df.select(col("col1")) col()로 선택
df.selectExpr("col1", "col2 * 2 as doubled") 표현식으로 선택
df.drop("col1") 열 삭제

🔧 필터링

df.filter(df.col > 10) 행 필터링
df.filter("col > 10") 필터 (문자열 표현식)
df.where(df.col == "value") where (별칭)
df.filter((df.col1 > 10) & (df.col2 < 20)) 다중 조건
df.filter(df.col.isin([1, 2, 3])) isin으로 필터
df.filter(df.col.isNull()) null 필터
df.filter(df.col.isNotNull()) 널 아닌 필터
df.filter(df.col.like("%pattern%")) like로 필터

🔄 변환

열 연산

df.withColumn("new", df.col * 2) 열 추가/교체
df.withColumnRenamed("old", "new") 열 이름 변경
df.withColumn("col", df.col.cast("integer")) 타입 캐스트
df.withColumn("col", F.when(condition, value).otherwise(other)) 조건부 열
df.withColumn("col", F.lit("constant")) 상수 값
df.fillna(0) null 값 채우기
df.na.drop() null 행 삭제

📋 행 연산

df.distinct() 중복 제거
df.dropDuplicates(["col1"]) 열 기준 중복 삭제
df.orderBy("col") 오름차순 정렬
df.orderBy(df.col.desc()) 내림차순 정렬
df.limit(10) 행 제한
df.sample(fraction=0.1) 랜덤 샘플

📊 집계 & 그룹화

📈 집계

from pyspark.sql import functions as F 함수 가져오기
df.agg(F.sum("col")) 합계
df.agg(F.avg("col")) 평균
df.agg(F.count("col")) 개수
df.agg(F.min("col"), F.max("col")) 최소/최대
df.agg(F.countDistinct("col")) 고유 개수

👥 Group By

df.groupBy("col").count() 그룹별 개수
df.groupBy("col").sum("value") 그룹별 합계
df.groupBy("col").agg(F.avg("val"), F.max("val")) 다중 집계
df.groupBy("col1", "col2").count() 다중 기준 그룹화
df.groupBy("col").pivot("pivot_col").sum("val") 피벗 테이블

🔗 조인 & 유니온

🤝 조인

df1.join(df2, "key") 키로 내부 조인
df1.join(df2, df1.k1 == df2.k2) 표현식으로 조인
df1.join(df2, "key", "left") 왼쪽 조인
df1.join(df2, "key", "right") 오른쪽 조인
df1.join(df2, "key", "outer") 완전 외부 조인
df1.join(df2, "key", "left_anti") 왼쪽 안티 조인
df1.crossJoin(df2) 크로스 조인

유니온

df1.union(df2) 유니온 (중복 유지)
df1.unionByName(df2) 열 이름으로 유니온
df1.intersect(df2) 교집합
df1.subtract(df2) 차집합

🗄️ SQL 쿼리

💾 Spark SQL

df.createOrReplaceTempView("table") 임시 뷰 생성
spark.sql("SELECT * FROM table") SQL 쿼리 실행
spark.sql("SELECT col, COUNT(*) FROM table GROUP BY col") SQL 집계
df.createOrReplaceGlobalTempView("gtable") 전역 임시 뷰
spark.sql("SELECT * FROM global_temp.gtable") 전역 뷰 쿼리

🔧 내장 함수

📝 문자열 함수

F.upper(col) / F.lower(col) 대문자/소문자
F.trim(col) / F.ltrim(col) / F.rtrim(col) 공백 제거
F.length(col) 문자열 길이
F.substring(col, start, len) 부분 문자열
F.concat(col1, col2) 연결
F.split(col, pattern) 문자열 분할
F.regexp_replace(col, pattern, replacement) 정규식 교체

📅 날짜 함수

F.current_date() 현재 날짜
F.current_timestamp() 현재 타임스탬프
F.year(col) / F.month(col) / F.day(col) 날짜 부분 추출
F.datediff(end, start) 날짜 차이
F.date_add(col, days) 일 추가
F.to_date(col, format) 문자열을 날짜로

💡 팁 & 모범 사례

유용한 팁

  • 최고 성능을 위해 Parquet 사용
  • 여러 번 사용되는 DataFrame 캐시
  • 작은 테이블에 브로드캐스트 조인 사용
  • 자주 필터링하는 열로 데이터 파티셔닝
  • 쿼리 계획 이해에 explain() 사용
  • 가능하면 UDF 피하고 내장 함수 사용