val result 是一个 spark DataFram,其列是 [uid: Int, vector: Vector]。 但是推荐的类型是RDD[数据帧],如何将推荐中的所有结果映射到数据帧?
val recomRes = result.rdd.map(row => {
val uid = row.apply(0)
val vec = row.getAs[Vector](1)
brp
.approxNearestNeighbors(vectors, vec, 5)
.withColumn("uid", lit(uid))
.select("uid", "aid", "distCol")
}
我尝试过循环来处理,但非常非常慢。
在 map 之后使用 toDF(( 方法。
您需要导入sqlContext.implicits._