我正在使用Scala的Kmeans Spark功能,我需要将获得的群集中心保存为CSV。此val的类型为:function addMaterial () {
var course = Classroom.Courses.get("10404033071");
course.courseMaterialSets = [{
title: "test",
materials: [{
link:{
url: "URL",
},}],
}],
Classroom.Courses.update(course, "10404033071");
}
。
Array[DenseVector]
我正在尝试将val clusters = KMeans.train(parsedData, numClusters, numIterations)
val centers = clusters.clusterCenters
转换为RDD文件,然后从RDD转换为DF,但是我遇到了很多问题(例如,导入spark.implicits._ / SQLContext.implicits._无效,我不能使用centers
)。我想知道是否有其他方法可以让CSV更容易。
有什么建议吗?
答案 0 :(得分:2)
不使用外部库,只需简单地写入Java文件即可。
import java.io.{ PrintWriter, File, FileOutputStream }
...
val pw = new PrintWriter(
new File( "KMeans_centers.csv" )
)
centers
.foreach( vec =>
pw.write( vec.toString.drop( 1 ).dropRight( 1 ) + "\n" )
)
pw.close()
产生的文件
0.1,0.1,0.1
9.1,9.1,9.1
需要 drop
和dropRight
来移除转化后的矢量周围的[]
。
代码和数据来自官方example。