Tổng Quan Data Wrangling & Big Data
1. Data Wrangling là gì?
Data Wrangling (hay Data Munging) là quá trình chuyển đổi và làm sạch dữ liệu thô thành dạng có thể phân tích được.
1.1 Chu trình Data Wrangling
Text
1Raw Data → Discovery → Structuring → Cleaning → 2Enriching → Validating → Publishing → Analysis-Ready Data1.2 Tại sao Data Wrangling quan trọng?
| Thách thức | Giải pháp |
|---|---|
| Dữ liệu bẩn (missing, duplicates, outliers) | Cleaning & validation |
| Nhiều nguồn khác nhau (APIs, DBs, files) | ETL pipelines |
| Định dạng không nhất quán | Standardization |
| Quy mô lớn (>GB data) | Big Data tools (Spark) |
2. Big Data là gì?
Big Data là tập dữ liệu quá lớn hoặc phức tạp để xử lý bằng công cụ truyền thống (Excel, SQL đơn lẻ).
2.1 Đặc điểm Big Data (5 V's)
| V | Ý nghĩa | Ví dụ |
|---|---|---|
| Volume | Khối lượng lớn | Terabytes, Petabytes |
| Velocity | Tốc độ sinh ra | Streaming data, IoT sensors |
| Variety | Đa dạng định dạng | Text, images, videos, logs |
| Veracity | Độ tin cậy | Noisy data, inconsistencies |
| Value | Giá trị kinh doanh | Insights, predictions |
2.2 Khi nào cần Big Data?
Python
1# Pandas - Dữ liệu vừa (<5GB RAM)2import pandas as pd3df = pd.read_csv("small_data.csv") # OK với 1-2GB45# PySpark - Big Data (>10GB)6from pyspark.sql import SparkSession7spark = SparkSession.builder.appName("BigData").getOrCreate()8df = spark.read.csv("huge_data.csv") # Xử lý 100GB+3. Roadmap Khóa học
Module 1: Data Wrangling Nâng cao (Tuần 1-3)
- Bài 2: SQL Nâng cao (Window Functions, CTEs, Subqueries)
- Bài 3: Pandas Nâng cao (MultiIndex, GroupBy, Merge strategies)
- Bài 4: Data Quality & Validation
- Bài 5: ETL Pipelines với Python
Module 2: Apache Spark & PySpark (Tuần 4-5)
- Bài 6: Giới thiệu Apache Spark
- Bài 7: PySpark DataFrame API
- Bài 8: Spark SQL & Transformations
- Bài 9: Spark Performance Tuning
Module 3: Streaming & Real-time Data (Tuần 6)
- Bài 10: Data Streaming Fundamentals
- Bài 11: Spark Structured Streaming
- Bài 12: Kafka & Message Queues
Module 4: Project & Advanced Topics (Tuần 7-8)
- Bài 13: Text Processing & NLP Basics
- Bài 14: Dự án: Sentiment Analysis Mạng Xã Hội
- Bài 15: Tổng kết & Next Steps
4. Công cụ sử dụng
4.1 Core Tools
| Công cụ | Mục đích | Khi nào dùng |
|---|---|---|
| Pandas | Data manipulation | Dữ liệu <5GB |
| Polars | Pandas faster | Dữ liệu 5-50GB |
| Apache Spark | Distributed computing | Dữ liệu >50GB |
| SQL | Query databases | Structured data |
| Dask | Parallel computing | Alternative to Spark |
4.2 Supporting Tools
Python
1# Data validation2import great_expectations # Data quality testing3import pandera # Schema validation45# ETL6import airflow # Workflow orchestration7import luigi # Pipeline management89# Streaming10import kafka # Message broker11import flink # Stream processing5. Dự án Thực hành
🎯 Sentiment Analysis Mạng Xã Hội
Mô tả: Phân tích cảm xúc (positive/negative/neutral) từ dữ liệu Twitter/Reddit về một sản phẩm/thương hiệu.
Pipeline:
Text
11. Thu thập data (Twitter API/Web scraping)22. Cleaning & preprocessing (remove URLs, hashtags)33. Text processing (tokenization, lemmatization)44. Feature extraction (TF-IDF, word embeddings)55. Model training (Logistic Regression, LSTM)66. Real-time prediction với Spark Streaming77. Visualization dashboard (Streamlit)Công nghệ:
- Data: Twitter API, Reddit API
- Processing: PySpark, NLTK, spaCy
- Model: Scikit-learn, Transformers (BERT)
- Streaming: Kafka + Spark Streaming
- Viz: Plotly, Streamlit
6. Yêu cầu đầu vào
6.1 Kiến thức cần có
- ✅ Python cơ bản (functions, loops, OOP)
- ✅ Pandas cơ bản (read, filter, groupby)
- ✅ SQL cơ bản (SELECT, JOIN, WHERE)
6.2 Cài đặt môi trường
Bash
1# Python environment2conda create -n bigdata python=3.103conda activate bigdata4 5# Core libraries6pip install pandas polars numpy7 8# Spark9pip install pyspark10 11# NLP12pip install nltk spacy textblob13 14# Visualization15pip install plotly streamlit16 17# Data quality18pip install great-expectations pandera7. Lộ trình học tập
Tuần 1-3: Data Wrangling
- Thứ 2-4: SQL nâng cao, Pandas advanced
- Thứ 5-7: Data validation, ETL pipelines
- Cuối tuần: Bài tập thực hành
Tuần 4-5: Apache Spark
- Thứ 2-4: Spark fundamentals, PySpark DataFrame
- Thứ 5-7: Spark SQL, performance tuning
- Cuối tuần: Mini project với Spark
Tuần 6: Streaming
- Thứ 2-4: Streaming concepts, Spark Streaming
- Thứ 5-7: Kafka integration
- Cuối tuần: Real-time pipeline
Tuần 7-8: Project
- Tuần 7: Text processing, model training
- Tuần 8: Deploy pipeline, presentation
8. Tài nguyên học tập
8.1 Documentation
8.2 Books
- "Learning Spark" (O'Reilly) - Spark toàn diện
- "High Performance Spark" (O'Reilly) - Optimization
- "Data Wrangling with Python" (O'Reilly) - Practical guide
8.3 Online Courses
- Databricks Academy - Spark free courses
- Kaggle Learn - Data cleaning
9. Đánh giá & Certification
9.1 Điểm số
- Bài tập hàng tuần: 40%
- Mini projects: 30%
- Final project (Sentiment Analysis): 30%
9.2 Tiêu chí pass
- Điểm trung bình ≥ 70%
- Hoàn thành final project
- Attendance ≥ 80%
Bắt đầu học ngay!
Chuẩn bị cho hành trình xử lý dữ liệu quy mô lớn! 🚀
Next: Bài 2 - SQL Nâng cao
