map, filter, reduce, giống hệt Scala List nhưng chạy trên cluster.map: Biến đổi từng phần tử.flatMap: Giống map, nhưng mở rộng kết quả thành danh sách lớn hơn.filter: Giữ lại những phần tử thỏa mãn điều kiện.reduce: Gộp tất cả phần tử thành một giá trị duy nhất.📌 Điểm khác biệt lớn nhất: RDD chạy trên nhiều máy (phân tán), còn Scala List chỉ chạy trên một máy!
✅ Ví dụ đơn giản:
👉 Giả sử ta có danh sách số, muốn bình phương chúng:
scala
CopyEdit
val list = List(1, 2, 3, 4, 5) // Scala List
val squaredList = list.map(x => x * x)
println(squaredList) // Kết quả: List(1, 4, 9, 16, 25)
🔥 Nếu làm với RDD (chạy trên cluster!)
val rdd = sc.parallelize(List(1, 2, 3, 4, 5)) // Tạo RDD từ List
val squaredRDD = rdd.map(x => x * x)
squaredRDD.collect() // Kích hoạt tính toán, trả về List(1, 4, 9, 16, 25)
🛑 Điểm cần nhớ:
map trên List thực thi ngay lập tức.map trên RDD chỉ tạo kế hoạch, cần collect() để chạy thật.