case (itF_1, itF_2)模式匹配是根据什么判断 上面代码也没有这两个参数

来源:9-4 离线推荐:基于物品角度召回策略筛选候选集(上)

慕设计4006959

2021-04-24

写回答

1回答

小简同学

2021-04-25

同学你好,case (itF_1, itF_2) 是指匹配  (itF_1, itF_2) 这种类型,在上面的itemFactors.crossJoin(itemFactors).as[(Seq[(Int,Array[Float])],Seq[(Int,Array[Float])])] 已经将itemFactors.crossJoin(itemFactors)转换为(Seq[(Int,Array[Float])],Seq[(Int,Array[Float])])这种结构,所以 (itF_1, itF_2) 匹配的就是(Seq[(Int,Array[Float])],Seq[(Int,Array[Float])]),其中itF_1,itF_2分别对应的是(Seq[(Int,Array[Float])],Seq[(Int,Array[Float])])里第1位的Seq[(Int,Array[Float])],和第2位的Seq[(Int,Array[Float])],关于基于物品协同过滤的召回,这段代码,由于需要用到余弦相似度计算物品间的相似度,而且是通过RDD计算,代码看起来会有点别扭,祝学习愉快

0
0

Spark2.x+协同过滤算法,开发企业级个性化推荐系统

一门既讲算法原理又有完整的推荐系统架构的全能课

330 学习 · 91 问题

查看课程