在Spark MLlib中对一个例子的某些部分的误解

时间:2016-04-14 10:12:57

标签: scala apache-spark apache-spark-mllib

我按照example使用Spark MLLib创建一个简单的个性化演示推荐器。

我在这些代码行中略微误解了_._2.user_._2.product的含义:

val numUsers = ratings.map(_._2.user).distinct.count
val numMovies = ratings.map(_._2.product).distinct.count

2表示什么?此外,此行中第一次显示userproduct似乎也是如此。那么,它们如何与userIdmovieId

相关联

2 个答案:

答案 0 :(得分:2)

> head(DF, n=100) timestep cellNo. 1 1 1 2 1 2 3 1 3 4 1 4 5 1 5 6 1 6 7 1 7 8 1 8 9 1 9 10 1 10 11 1 11 12 1 12 13 1 13 14 1 14 15 1 15 16 1 16 17 1 17 18 1 18 19 1 19 20 1 20 21 1 21 22 1 22 23 1 23 24 1 24 25 1 25 26 1 26 27 1 27 28 1 28 29 1 29 30 1 30 31 1 31 32 1 32 33 2 1 34 2 2 35 2 3 36 2 4 37 2 5 38 2 6 39 2 7 40 2 8 41 2 9 42 2 10 43 2 11 44 2 12 45 2 13 46 2 14 47 2 15 48 2 16 49 2 17 50 2 18 51 2 19 52 2 20 53 2 21 54 2 22 55 2 23 56 2 24 57 2 25 58 2 26 59 2 27 60 2 28 61 2 29 62 2 30 63 2 31 64 2 32 65 3 1 66 3 2 67 3 3 68 3 4 69 3 5 70 3 6 71 3 7 72 3 8 73 3 9 74 3 10 75 3 11 76 3 12 77 3 13 78 3 14 79 3 15 80 3 16 81 3 17 82 3 18 83 3 19 84 3 20 85 3 21 86 3 22 87 3 23 88 3 24 89 3 25 90 3 26 91 3 27 92 3 28 93 3 29 94 3 30 95 3 31 96 3 32 97 4 1 98 4 2 99 4 3 100 4 4 _1,... _2是用于提取Scala中元组元素的方法。这些没有特殊的Spark特定上下文。 _2userRating的字段。由于product ratings创建如下:

RDD[(Long, Rating)]

你应该有一个完整的图片。

答案 1 :(得分:1)

ratings的类型为RDD[(Int, Rating)]。因此ratings.map使用(Int, Rating)参数的函数,而_中的_.something代表此参数。 _2返回元组的第二个字段(Rating),userproductRating的声明中声明。