Tôi có một RDD có cấu trúc như sau:spark-scala: Lọc RDD nếu hồ sơ của RDD không tồn tại trong một RDD
((user_id,item_id,rating))
phép gọi RDD này như đào tạo
sau đó, có một RDD với cấu trúc giống nhau:
((user_id,item_id,rating))
và RDD này như kiểm tra
tôi muốn làm sur e dữ liệu trong thử nghiệm không xuất hiện trong cơ sở đào tạo cho mỗi người dùng. Vì vậy, hãy nói
train = {u1,item2: u1,item4 : u1,item3} test={u1,item2:u1, item5}
Tôi muốn đảm bảo mục 2 được xóa khỏi dữ liệu đào tạo u1.
vì vậy những gì tôi bắt đầu làm là groupby cả RDD (s) (user_id, item_id)
val groupedTrainData = trainData.groupBy(x => (x._1, x._2))
Nhưng tôi có cảm giác như đây không phải là con đường để đi.
không trừ này bằng một phím? giả sử nếu tôi có (người dùng, mục, đánh giá, thông tin khác) tôi có thể trừ chỉ bởi (người dùng, mục)? –
'PairRDDFunctions' hoạt động trên' RDD [(K, V)] '. Trong ví dụ của tôi 'K' là' (người dùng, mục) '. –