Lý thuyết
Bài 1/15

Tổng Quan Data Wrangling & Big Data

Giới thiệu về xử lý dữ liệu quy mô lớn và công cụ Big Data

Tổng Quan Data Wrangling & Big Data

Big Data Processing

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 Data

1.2 Tại sao Data Wrangling quan trọng?

Thách thứcGiả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ánStandardization
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ĩaVí dụ
VolumeKhối lượng lớnTerabytes, Petabytes
VelocityTốc độ sinh raStreaming data, IoT sensors
VarietyĐa dạng định dạngText, images, videos, logs
VeracityĐộ tin cậyNoisy data, inconsistencies
ValueGiá trị kinh doanhInsights, predictions

2.2 Khi nào cần Big Data?

Python
1# Pandas - Dữ liệu vừa (<5GB RAM)
2import pandas as pd
3df = pd.read_csv("small_data.csv") # OK với 1-2GB
4
5# PySpark - Big Data (>10GB)
6from pyspark.sql import SparkSession
7spark = 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 đíchKhi nào dùng
PandasData manipulationDữ liệu <5GB
PolarsPandas fasterDữ liệu 5-50GB
Apache SparkDistributed computingDữ liệu >50GB
SQLQuery databasesStructured data
DaskParallel computingAlternative to Spark

4.2 Supporting Tools

Python
1# Data validation
2import great_expectations # Data quality testing
3import pandera # Schema validation
4
5# ETL
6import airflow # Workflow orchestration
7import luigi # Pipeline management
8
9# Streaming
10import kafka # Message broker
11import flink # Stream processing

5. 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 Streaming
77. 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 environment
2conda create -n bigdata python=3.10
3conda activate bigdata
4
5# Core libraries
6pip install pandas polars numpy
7
8# Spark
9pip install pyspark
10
11# NLP
12pip install nltk spacy textblob
13
14# Visualization
15pip install plotly streamlit
16
17# Data quality
18pip install great-expectations pandera

7. 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


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