Cách tốt nhất để trả lại hàng tối đa (giá trị) được liên kết với mỗi khóa duy nhất trong RDD tia lửa là gì?Lấy giá trị tối đa cho mỗi khóa trong Spark RDD
Tôi đang sử dụng python và tôi đã thử Math max, mapping và reduce bằng các phím và tập hợp. Có cách nào hiệu quả để làm việc này không? Có thể là một UDF?
tôi có trong định dạng RDD:
[(v, 3),
(v, 1),
(v, 1),
(w, 7),
(w, 1),
(x, 3),
(y, 1),
(y, 1),
(y, 2),
(y, 3)]
Và tôi cần phải trả lại:
[(v, 3),
(w, 7),
(x, 3),
(y, 3)]
Ties có thể trả về giá trị đầu tiên hoặc ngẫu nhiên.
bạn có thể đưa ra một cách để làm điều này trong Java không? Tôi đang sử dụng java và tìm kiếm chính xác điều tương tự – tsar2512
@ tsar2512 Với Java 8, điều này có thể hoạt động: 'new JavaPairRDD (rdd) .reduceByKey ((v1, v2) -> Math.max (v1, v2));' –
cảm ơn cho phản ứng, không may, tôi đang sử dụng Java 7 - nó không cho phép các hàm lambda. Người ta thường phải viết các hàm ẩn danh. Bạn có thể cho tôi biết những gì sẽ là giải pháp trong Java 7? Tôi nghi ngờ một hàm so sánh đơn giản sẽ hoạt động! – tsar2512