Comment préparer des données dans un format LibSVM à partir de DataFrame?

Je veux faire libsvm format, j'ai donc fait dataframe pour le format souhaité, mais je ne sais pas comment les convertir pour libsvm format. Le format est tel que montré dans la figure. J'espère que le souhaité libsvm type est utilisateur item:notation . Si vous savez quoi faire dans la situation actuelle :

val ratings = sc.textFile(new File("/user/ubuntu/kang/0829/rawRatings.csv").toString).map { line =>
     val fields = line.split(",")
      (fields(0).toInt,fields(1).toInt,fields(2).toDouble)
}
val user = ratings.map{ case (user,product,rate) => (user,(product.toInt,rate.toDouble))}
val usergroup = user.groupByKey 

val data =usergroup.map{ case(x,iter) => (x,iter.map(_._1).toArray,iter.map(_._2).toArray)}

val data_DF = data.toDF("user","item","rating")

Comment préparer des données dans un format LibSVM à partir de DataFrame?

source d'informationauteur Data diaboli