1. Shuffling là gì và tại sao nó quan trọng?


2. Ví dụ minh họa: Sử dụng groupByKey

Bối cảnh:

Giả sử chúng ta có một RDD gồm các đối tượng CFFPurchase với thông tin:

Các bước thực hiện:

  1. Tạo Pair RDD:

    Ta chuyển RDD ban đầu thành cặp key-value với:

  2. Thực hiện groupByKey:

    Khi gọi groupByKey, Spark sẽ gom tất cả các giá trị (giá vé) của mỗi customerId lại với nhau.

  3. Tính toán sau khi shuffling:

    Sau khi dữ liệu đã được gom lại, ta có thể dễ dàng tính số chuyến đi (dùng size) và tổng tiền (dùng sum) cho từng khách hàng.

Điều cần nhớ:


3. Giải pháp tối ưu: reduceByKey

Tại sao reduceByKey tốt hơn?