map: Áp dụng một hàm lên từng phần tử và trả về một RDD mới.flatMap: Tương tự map, nhưng mỗi phần tử có thể ánh xạ thành nhiều phần tử.filter: Giữ lại các phần tử thỏa mãn điều kiện.distinct: Loại bỏ các phần tử trùng lặp.union: Hợp hai RDD lại với nhau.intersection: Trả về các phần tử chung giữa hai RDD.subtract: Trả về các phần tử có trong RDD này nhưng không có trong RDD kia.cartesian: Tạo tích Descartes giữa hai RDD.✅ Ví dụ về Transformations
val rdd = sc.parallelize(List(1, 2, 3, 4, 5))
val squaredRDD = rdd.map(x => x * x) // Transformation
🚀 Kết quả: squaredRDD vẫn chưa được tính toán, nó chỉ lưu lại kế hoạch thực thi.
collect: Trả về tất cả phần tử của RDD dưới dạng mảng (Array).count: Đếm số lượng phần tử trong RDD.take(n): Lấy n phần tử đầu tiên.reduce(f): Áp dụng hàm f để kết hợp tất cả phần tử trong RDD thành một giá trị duy nhất.foreach(f): Áp dụng hàm f lên từng phần tử trong RDD, hữu ích khi ghi dữ liệu ra ngoài.takeSample: Lấy mẫu ngẫu nhiên các phần tử trong RDD.takeOrdered: Lấy n phần tử đầu tiên theo thứ tự sắp xếp.saveAsTextFile(path): Ghi dữ liệu xuống file hệ thống hoặc HDFS.✅ Ví dụ về Actions
val sum = squaredRDD.reduce((a, b) => a + b) // Action
println(sum) // Bây giờ Spark mới thực thi các transformations trước đó
🚀 Kết quả: Giá trị tổng của tất cả phần tử trong squaredRDD được tính toán.