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