Course Code: pysprkub
Duration: 21 hours

Prerequisites:

Người tham gia nên có:

  • Kinh nghiệm thực hành với lập trình Python, bao gồm các hàm, module và các khái niệm hướng đối tượng cơ bản.
  • Kinh nghiệm từ cơ bản đến trung cấp khi làm việc với Pandas và các quy trình xử lý dữ liệu dạng bảng.
  • Sự quen thuộc cơ bản với PySpark và Spark DataFrames, bao gồm đọc dữ liệu, biến đổi, các hành động, ghép nối (joins) và tổng hợp.
  • Sự hiểu biết tổng quát về SQL và các khái niệm xử lý dữ liệu, bao gồm lọc, nhóm và ghép nối bộ dữ liệu.
  • Sự quen thuộc cơ bản với các khái niệm Docker và Kubernetes, chẳng hạn như container, ảnh (images) và pod. Không yêu cầu kinh nghiệm quản trị Kubernetes.
  • Sự hiểu biết cơ bản về các định dạng dữ liệu phổ biến như CSV, JSON và Parquet.

Người tham gia không cần phải là quản trị viên Kubernetes hoặc chuyên gia hạ tầng. Khóa học tập trung vào cách kỹ sư dữ liệu, nhà phát triển và khoa học dữ liệu có thể hiểu và tối ưu hóa các tác vụ Spark của họ đang chạy trên Kubernetes từ góc độ ứng dụng và cấu hình.

Đối tượng mục tiêu

Khóa học được thiết kế dành cho các chuyên gia phát triển, duy trì hoặc tối ưu hóa các tác vụ xử lý dữ liệu và học máy bằng Python và Spark trong môi trường đám mây hoặc container.

Nó đặc biệt phù hợp với:

  • Kỹ sư Dữ liệu làm việc với PySpark, xử lý dữ liệu phân tán và các đường ống ETL.
  • Khoa học Dữ liệu xử lý các bộ dữ liệu lớn hoặc chạy các tác vụ học máy với Spark, Pandas hoặc Polars.
  • Nhà Phát triển Python làm việc với các ứng dụng đòi hỏi nhiều dữ liệu và tìm cách cải thiện hiệu quả bộ nhớ và hiệu suất xử lý.
  • Kỹ sư Học máy quản lý các tác vụ chuẩn bị dữ liệu và huấn luyện mô hình trên các môi trường Kubernetes hoặc đám mây dùng chung.
  • Kỹ sư Phân tích làm việc với các bộ dữ liệu lớn và tìm cách cải thiện hiệu quả xử lý dữ liệu.
  • Kỹ sư DevOps, Nền tảng và Đám mây hỗ trợ các tác vụ Spark trên Kubernetes và cần hiểu cách cấu hình ở cấp độ ứng dụng ảnh hưởng đến mức sử dụng tài nguyên và hiệu suất.
  • Trưởng nhóm Kỹ thuật và Kiến trúc sư Giải pháp tham gia vào việc thiết kế hoặc tối ưu hóa các nền tảng xử lý dữ liệu hiện đại.

Overview:

Khóa học thực hành ba ngày này tập trung vào việc xây dựng và tối ưu hóa các tác vụ xử lý dữ liệu hiệu quả bằng cách sử dụng PySpark, Pandas và Polars trong môi trường dựa trên Kubernetes.

Người học sẽ phát triển sự hiểu biết thực tiễn về cách các ứng dụng Spark được thực thi trên Kubernetes và cách các quyết định cấu hình ở cấp độ ứng dụng ảnh hưởng đến hiệu suất, khả năng mở rộng, mức tiêu thụ tài nguyên và chi phí. Khóa học bao phủ các lĩnh vực tối ưu hóa chính, bao gồm kích thước executor, phân bổ bộ nhớ, phân bổ động, chiến lược phân vùng, hành vi shuffle, vấn đề tệp nhỏ và xử lý Parquet hiệu quả.

Khóa học cũng đề cập đến các thách thức phổ biến khi làm việc với Pandas, bao gồm các hạn chế về bộ nhớ và lỗi thiếu bộ nhớ, đồng thời giới thiệu Polars như một giải pháp thay thế hiệu năng cao cho một số tác vụ xử lý dữ liệu nhất định. Thông qua các bài tập thực hành, người học sẽ chẩn đoán các vấn đề về hiệu suất và bộ nhớ, so sánh các chiến lược cấu hình khác nhau và áp dụng các kỹ thuật tối ưu hóa vào các kịch bản ETL và học máy thực tế.

Trọng tâm xuyên suốt khóa học là ra quyết định thực tiễn: hiểu cách xác định điểm nghẽn, lựa chọn công cụ phù hợp, cấu hình Spark hiệu quả và cân bằng giữa hiệu suất với mức tiêu thụ tài nguyên hạ tầng và chi phí.

Course Outline:

Module 1: Nền tảng Big Data & Spark

  • Tổng quan về hệ sinh thái Big Data và vai trò của Spark trong các nền tảng dữ liệu hiện đại
  • Hiểu kiến trúc Spark: driver, executors, cluster manager, đánh giá lười (lazy evaluation), DAG và lập kế hoạch thực thi
  • Sự khác nhau giữa các API RDD và DataFrame và khi nào nên sử dụng từng cách tiếp cận
  • Tạo và cấu hình SparkSession, hiểu các nguyên tắc cơ bản của cấu hình ứng dụng

Module 2: PySpark DataFrames

  • Đọc và viết dữ liệu từ các nguồn và định dạng doanh nghiệp: CSV, JSON, Parquet và Delta
  • Làm việc với PySpark DataFrames: biến đổi, các hành động, biểu thức cột, lọc, ghép nối và tổng hợp
  • Thực hiện các thao tác nâng cao như hàm cửa sổ (window functions), xử lý timestamp và làm việc với dữ liệu lồng nhau
  • Áp dụng các kiểm tra chất lượng dữ liệu và viết mã PySpark có thể tái sử dụng, dễ bảo trì

Module 3: Nền tảng Kubernetes & Docker dành cho người dùng Spark

  • Hiểu mối quan hệ giữa ảnh Docker và pod Kubernetes với các tiến trình driver và executor của Spark — góc nhìn khái niệm cho người tiêu dùng cụm, không phải quản trị viên
  • Hiểu những gì xảy ra khi một công việc Spark chạy trên Kubernetes: lịch trình pod, yêu cầu và giới hạn tài nguyên, và cách cài đặt phiên ánh xạ lên chúng
  • Hiểu những gì bạn điều khiển thông qua các tham số phiên Spark so với những gì nhóm nền tảng điều khiển thông qua việc cung cấp cụm — và tại sao ranh giới này quan trọng đối với tinh chỉnh
  • Bài tập thực hành: Kiểm tra một công việc Spark-on-Kubernetes đang chạy trong cụm sandbox và xác định các pod driver và executor

Module 4: Cấu hình Phiên Spark trên Kubernetes — Đi sâu

  • Hiểu số lượng executor so với kích thước executor: sự đánh đổi giữa bộ nhớ và lõi (cores) và cách suy luận về chúng
  • Phân bổ bộ nhớ cho driver và executor, bộ nhớ dự phòng (overhead), và cách chúng chuyển đổi thành tài nguyên pod
  • Phân bổ động (Dynamic allocation): cách nó hoạt động trên Kubernetes, khi nào nó tiết kiệm tài nguyên và khi nào thì không
  • Bài tập thực hành: Chạy cùng một công việc với các cấu hình executor và lõi khác nhau và so sánh thời gian thực thi và mức sử dụng tài nguyên

Module 5: Hành vi Mở rộng & Tối ưu hóa Chi phí

  • Hiểu cách việc thêm hoặc loại bỏ các nút thay đổi hành vi của công việc, thời gian hoàn thành và mức tiêu thụ tài nguyên
  • So sánh nhiều executor nhỏ với ít executor lớn: sự đánh đổi về hiệu suất và chi phí
  • Hành vi shuffle và tinh chỉnh phân vùng shuffle, bao gồm việc ước tính tác động chi phí của các lựa chọn cấu hình
  • Bài tập thực hành: Mở rộng cụm sandbox từ năm lên mười nút và quan sát tác động lên thời gian hoàn thành công việc và mức tiêu thụ tài nguyên

Module 6: Tiếp nhận & Phân vùng Dữ liệu Hiệu quả

  • Hiểu vấn đề tệp nhỏ: tại sao các nguồn dữ liệu bị chia cắt thành nhiều tệp Parquet 1–5 MB làm suy giảm hiệu suất và méo mó phân vùng
  • Chiến lược phân vùng lại (repartitioning) và gộp (coalescing)
  • Điều chỉnh kích thước phân vùng khi đọc và khi viết
  • Viết Parquet hiệu quả để tránh tạo lại vấn đề tệp nhỏ ở các bước tiếp theo
  • Bài tập thực hành: Nạp một bộ dữ liệu bao gồm nhiều phân vùng Parquet nhỏ, áp dụng các chiến lược phân vùng lại khác nhau và so sánh hiệu suất trước và sau khi tối ưu hóa

Module 7: Quản lý Bộ nhớ Pandas & Chẩn đoán Lỗi

  • Hiểu các nguyên nhân gốc rễ của các lỗi thiếu bộ nhớ trong Pandas và nhận biết các triệu chứng
  • Áp dụng các mẫu chuyển đổi hiệu quả về bộ nhớ giữa Spark và Pandas
  • Tránh sự phình to bộ nhớ khi viết các bộ dữ liệu lớn ra CSV
  • Sử dụng xử lý theo mảng (chunked processing) và tối ưu hóa dtype cho các môi trường bị hạn chế
  • Bài tập thực hành: Tái hiện một kịch bản thiếu bộ nhớ điển hình trong Pandas và giải quyết nó bằng cách sử dụng xử lý theo mảng và tối ưu hóa dtype

Module 8: Polars như một Công cụ Bổ trợ

  • Định vị Polars so với Pandas: đặc điểm hiệu năng, đánh giá lười và hành vi bộ nhớ
  • Hiểu vị trí của Polars bên cạnh PySpark và Pandas trong các stack dữ liệu đám mây hiện đại và các lộ trình di chuyển, bao gồm các môi trường AWS
  • Bài tập thực hành: Viết lại một phép biến đổi nặng Pandas bằng Polars và so sánh mức sử dụng bộ nhớ và tốc độ xử lý

Module 9: Áp dụng Tối ưu hóa vào Các Tác vụ ETL & ML

  • Áp dụng các nguyên tắc cấu hình, phân vùng và quản lý bộ nhớ xuyên suốt một đường ống ETL thực tế
  • Hiểu các cân nhắc tối ưu hóa đặc thù cho các tác vụ học máy chạy trên cùng một cụm
  • Áp dụng một quy trình tinh chỉnh thực tiễn để chẩn đoán hệ thống các vấn đề về chi phí và hiệu suất
  • Bài tập thực hành: Hoàn thành một mini-project đầu-cuối kết hợp nạp dữ liệu, biến đổi và một bước huấn luyện mô hình đơn giản, với việc người tham gia tự tinh chỉnh cấu hình 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