如何在没有 for 循环的情况下使用 scala in spark 将 RDD[DataFrame] 中的所有 DataFrame 联合到 DataFrame?

How can I union all the DataFrame in RDD[DataFrame] to a DataFrame without for loop using scala in spark?

val 结果是一个 spark DataFram,它的列是 [uid: Int, vector: Vector]。 但是recomRes的类型是RDD[DataFrame],如何将recomRes中的所有结果union映射到DataFrame?

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")
}

我试过用for循环来处理,但是非常非常慢。

映射后使用toDF()方法。

您需要导入sqlContext.implicits._