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