Course Code: pysprkub
Duration: 21 hours
Prerequisites:
참가자는 다음과 같은 자격 요건을 갖추어야 합니다:
- Python 프로그래밍 실습 경험 (함수, 모듈 및 기본 객체 지향 개념 포함).
- Pandas 및 표 형식 데이터 처리 워크플로에 대한 기본~중급 수준 경험.
- 데이터 읽기, 변환, 액션, 조인 및 집계 포함 PySpark 및 Spark DataFrame에 대한 기본적인 지식.
- 필터링, 그룹화 및 데이터셋 조인 포함 SQL 및 데이터 처리 개념에 대한 일반적인 이해.
- 컨테이너, 이미지 및 포드(pod) 등 Docker 및 Kubernetes 개념에 대한 기본적인 지식. Kubernetes 관리 경험은 필요하지 않습니다.
- CSV, JSON 및 Parquet와 같은 일반적인 데이터 포맷에 대한 기본 이해.
참가자는 Kubernetes 관리자나 인프라 전문가일 필요는 없습니다. 이 과정은 데이터 엔지니어, 개발자 및 데이터 사이언티스트가 애플리케이션 및 구성 관점에서 Kubernetes에서 실행되는 Spark 워크로드를 이해하고 최적화하는 데 중점을 둡니다.
대상 독자
이 과정은 클라우드 또는 컨테이너화 환경에서 Python 및 Spark를 사용하여 데이터 처리 및 머신러닝 워크로드를 개발, 유지보수하거나 최적화하는 전문가를 위해 설계되었습니다.
다음과 같은 분에게 특히 적합합니다:
- PySpark, 분산 데이터 처리 및 ETL 파이프라인을 다루는 데이터 엔지니어.
- Spark, Pandas 또는 Polars로 대규모 데이터셋을 처리하거나 머신러닝 워크로드를 실행하는 데이터 사이언티스트.
- 데이터 집약적 애플리케이션을 다루며 메모리 효율성 및 처리 성능 향상을 추구하는 Python 개발자.
- 공유 Kubernetes 또는 클라우드 환경에서 데이터 준비 및 모델 학습 워크로드를 관리하는 머신러닝 엔지니어.
- 대규모 데이터셋을 다루며 데이터 처리 효율성 향상을 추구하는 분석 엔지니어.
- Kubernetes에서의 Spark 워크로드를 지원하고 애플리케이션 수준 구성이 자원 사용량 및 성능에 미치는 영향을 이해해야 하는 DevOps, 플랫폼 및 클라우드 엔지니어.
- 현대적인 데이터 처리 플랫폼의 설계 또는 최적화에 관여하는 기술 리드 및 솔루션 아키텍트.
Overview:
이 3일간 실습 중심의 과정에서는 Kubernetes 기반 환경에서 PySpark, Pandas 및 Polars를 사용하여 효율적인 데이터 처리 워크로드를 구축하고 최적화하는 방법에 집중합니다.
참가자들은 Spark 애플리케이션이 Kubernetes에서 어떻게 실행되는지, 그리고 애플리케이션 수준의 구성 결정이 성능, 확장성, 자원 소비 및 비용에 어떤 영향을 미치는지에 대한 실용적인 이해를 갖추게 됩니다. 이 과정에서는 실행자(executor) 크기 조정, 메모리 할당, 동적 할당, 파티셔닝 전략, 샤플(shuffle) 동작, 소파일 문제, 그리고 효율적인 Parquet 처리 등 주요 최적화 영역을 다룹니다.
또한 이 과정은 Pandas 작업 시 발생하는 메모리 제한 및 OOM(Out-of-Memory) 실패와 같은 일반적인 도전을 다루며, 선택된 데이터 처리 워크로드에 대한 고성능 대안으로 Polars를 소개합니다. 실습을 통해 참가자들은 성능 및 메모리 문제를 진단하고, 다양한 구성 전략을 비교하며, 현실적인 ETL 및 머신러닝 시나리오에 최적화 기술을 적용하는 법을 익힙니다.
과정에 걸쳐 강조하는 것은 실용적 의사결정입니다. 병목 현상을 식별하고, 적합한 도구를 선택하며, Spark를 효율적으로 구성하고, 성능과 인프라 자원 소비 및 비용을 균형 있게 조절하는 방법을 이해하는 것입니다.
Course Outline:
모듈 1: 빅데이터 & Spark 기초
- 빅데이터 생태계 개요 및 현대 데이터 플랫폼에서 Spark의 역할
- Spark 아키텍처 이해: 드라이버, 실행자, 클러스터 매니저, 지연 평가, DAG 및 실행 계획
- RDD와 DataFrame API의 차이 및 각각의 접근 방식을 사용할 시점
- SparkSession 생성 및 구성, 그리고 애플리케이션 구성 기본 원리 이해
모듈 2: PySpark DataFrame
- 기업용 소스 및 포맷(CSV, JSON, Parquet, Delta)으로부터 데이터 읽기 및 쓰기
- PySpark DataFrame 활용: 변환, 액션, 컬럼 표현식, 필터링, 조인 및 집계
- 우indow 함수, 타임스탬프 처리, 중첩 데이터 작업 등 고급 연산 구현
- 데이터 품질 체크 적용 및 재사용 가능하고 유지보수하기 쉬운 PySpark 코드 작성
모듈 3: Spark 사용자를 위한 Kubernetes & Docker 기초
- Docker 이미지와 Kubernetes 포드가 Spark 드라이버 및 실행자 프로세스와 어떻게 관련되는지 이해 — 관리자용이 아닌 클러스터 소비자 관점의 개념적 설명
- Kubernetes에서 Spark 작업이 실행될 때 발생하는 일 이해: 포드 스케줄링, 자원 요청 및 한도, 세션 설정이 이에 어떻게 매핑되는지
- Spark 세션 파라미터를 통해 무엇을 제어하는지 vs 플랫폼 팀이 클러스터 프로비저닝을 통해 무엇을 제어하는지 이해 — 그리고 왜 이 경계가 튜닝에 중요한지
- 실습: 샌드박스 클러스터에서 실행 중인 Spark-on-Kubernetes 작업을 검사하고 드라이버 및 실행자 포드 식별
모듈 4: Kubernetes에서의 Spark 세션 구성 — 심층 분석
- 실행자 수와 실행자 크기 이해: 메모리 대 코어의 트레이드오프 및 이를 논리적으로 접근하는 방법
- 드라이버 및 실행자 메모리 할당, 메모리 오버헤드 및 이것이 포드 리소스로 어떻게 변환되는지
- 동적 할당: Kubernetes에서의 동작 방식, 자원을 절약하는 경우와 절약하지 못하는 경우
- 실습: 동일한 작업을 실행자 및 코어 구성이 다른 환경에서 실행하여 실행 시간과 자원 사용량 비교
모듈 5: 확장성 행동 & 비용 최적화
- 노드 추가 또는 제거가 작업 동작, 완료 시간 및 자원 소비에 어떻게 영향을 미치는지 이해
- 작은 실행자 다수 vs 큰 실행자 소수 비교: 성능과 비용 트레이드오프
- 샤플 동작 및 샤플 파티션 튜닝, 구성 선택의 비용 영향 추정 포함
- 실습: 샌드박스 클러스터를 5개 노드에서 10개 노드로 확장하고 작업 완료 시간 및 자원 소비에 대한 효과 관찰
모듈 6: 효율적인 데이터 수집 & 파티셔닝
- 소파일 문제 이해: 소스가 수많은 1~5 MB의 Parquet 파일로 분할되었을 때 왜 성능이 저하되고 파티셔닝이 왜곡되는지
- 재파티셔닝(Repartitioning) 및 결합(Coalescing) 전략
- 읽기 및 쓰기 시 파티션 크기 제어
- 하류에서 소파일 문제를 재현하는 것을 방지하기 위해 Parquet 효율적으로 쓰기
- 실습: 수많은 작은 Parquet 파티션으로 구성된 데이터셋을 로드하고, 다양한 재파티셔닝 전략을 적용하여 최적화 전후의 성능 비교
모듈 7: Pandas 메모리 관리 & 실패 진단
- Pandas에서 OOM(Out-of-Memory) 오류의 근본 원인 이해 및 증상 인식
- Spark와 Pandas 간 메모리 효율적 변환 패턴 적용
- 대규모 데이터셋을 CSV로 쓸 때 메모리 폭발 방지
- 제한된 환경을 위한 청크 처리 및 dtype 최적화 사용
- 실습: 일반적인 Pandas OOM 시나리오를 재현하고 청킹 및 dtype 최적화를 사용하여 해결
모듈 8: 보완 도구로서의 Polars
- Pandas 대비 Polars 포지셔닝: 성능 특성, 지연 평가 및 메모리 동작
- 현대 클라우드 데이터 스택 및 마이그레이션 로드맵에서 PySpark 및 Pandas와 함께 Polars가 어떻게 위치하는지 이해, AWS 환경 포함
- 실습: Pandas 중심 변환을 Polars로 재작성하고 메모리 사용량 및 처리 속도 비교
모듈 9: ETL & ML 워크로드에 최적화 적용
- 현실적인 ETL 파이프라인 전반에 걸쳐 구성, 파티셔닝 및 메모리 관리 원리 적용
- 동일 클러스터에서 실행되는 머신러닝 워크로드에 특화된 최적화 고려사항 이해
- 비용 및 성능 문제를 체계적으로 진단하기 위한 실용적 튜닝 워크플로 적용
- 실습: 데이터 로딩, 변환 및 간단한 모델 학습 단계를 결합한 끝에서 끝 미니 프로젝트를 완료하며, 참가자가 스스로 Spark 구성을 튜닝
Sites Published:
United Arab Emirates - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Qatar - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Egypt - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Saudi Arabia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
South Africa - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Brasil - Processamento Eficiente de Dados no Kubernetes com PySpark, Pandas e Polars
Canada - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
中国 - 基于Kubernetes使用PySpark、Pandas和Polars实现高效数据处理
香港 - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
澳門 - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
台灣 - 使用PySpark、Pandas和Polars在Kubernetes上進行高效資料處理
USA - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Österreich - Effiziente Datenverarbeitung mit PySpark, Pandas und Polars auf Kubernetes
Schweiz - Effiziente Datenverarbeitung mit PySpark, Pandas und Polars auf Kubernetes
Deutschland - Effiziente Datenverarbeitung mit PySpark, Pandas und Polars auf Kubernetes
Czech Republic - Efektivní zpracování dat v Kubernetes pomocí PySpark, Pandas a Polars
Denmark - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Estonia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Finland - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Greece - Αποτελεσματική Επεξεργασία Δεδομένων σε Kubernetes με PySpark, Pandas & Polars
Magyarország - Hatékony adatfeldolgozás Kubernetesben PySpark, Pandas és Polars segítségével
Ireland - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Luxembourg - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Latvia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
España - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars
Italia - Elaborazione dati efficiente su Kubernetes con PySpark, Pandas e Polars
Lithuania - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Nederland - Efficiënte verwerking van data op Kubernetes met PySpark, Pandas & Polars
Norway - Effektiv databehandling på Kubernetes med PySpark, Pandas og Polars
Portugal - Processamento Eficiente de Dados no Kubernetes com PySpark, Pandas e Polars
România - Procesare eficientă a datelor pe Kubernetes cu PySpark, Pandas & Polars
Sverige - Effektiv datahantering med PySpark, Pandas och Polars på Kubernetes
Türkiye - Kubernetes Ortamında PySpark, Pandas ve Polars ile Verimli Veri İşleme
Malta - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Belgique - Traitement efficace des données sur Kubernetes avec PySpark, Pandas et Polars
France - Traitement efficace des données sur Kubernetes avec PySpark, Pandas et Polars
日本 - KubernetesにおけるPySpark、Pandas、Polarsによる効率的なデータ処理
Australia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Malaysia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
New Zealand - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Philippines - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Singapore - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Thailand - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Vietnam - Xử lý dữ liệu hiệu quả trên Kubernetes bằng PySpark, Pandas & Polars
India - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Argentina - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars
Chile - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars
Costa Rica - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars
Ecuador - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars
Guatemala - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars
Colombia - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars
México - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars
Panama - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars
Peru - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars
Uruguay - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars
Venezuela - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars
Polska - Skuteczne przetwarzanie danych w Kubernetesie z wykorzystaniem PySpark, Pandas i Polars
United Kingdom - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
South Korea - PySpark, Pandas 및 Polars를 활용한 Kubernetes에서 효율적인 데이터 처리
Pakistan - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Sri Lanka - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Bulgaria - Ефективна обработка на данни в Kubernetes с PySpark, Pandas и Polars
Bolivia - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars
Indonesia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Kazakhstan - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Moldova - Procesare eficientă a datelor pe Kubernetes cu PySpark, Pandas & Polars
Morocco - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Tunisia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Kuwait - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Oman - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Slovakia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Kenya - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Nigeria - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Botswana - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Slovenia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Croatia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Serbia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Bhutan - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Nepal - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Uzbekistan - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
US Government - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars