add*_*ons 5 scala apache-spark
我有一个RDD,其结构如下:
((user_id,item_id,rating))
Run Code Online (Sandbox Code Playgroud)
我们称这个RDD为训练
然后还有另一个具有相同结构的rdd:
((user_id,item_id,rating))
Run Code Online (Sandbox Code Playgroud)
这个rdd作为测试
我想确保测试中的数据不会出现在每个用户的列车中.所以我们说吧
train = {u1,item2: u1,item4 : u1,item3} test={u1,item2:u1, item5}
Run Code Online (Sandbox Code Playgroud)
我想确保从u1训练数据中删除item2.
所以我开始做的是groupBy rdd(s)(user_id,item_id)
val groupedTrainData = trainData.groupBy(x => (x._1, x._2))
Run Code Online (Sandbox Code Playgroud)
但我觉得这不是要走的路.
你需要PairRDDFunctions.subtractByKey:
def cleanTrain(
train: RDD[((user, item), rating)],
test: RDD[((user, item), rating)]) =
train.subtractByKey(test)
Run Code Online (Sandbox Code Playgroud)