保存 ml.feature.LabeledPoint 到本地 libsvm 文件
Save ml.feature.LabeledPoint to local libsvm file
(几乎是遗留的)mllib LabeledPoint 保存到 libsvm 文件如下:
val rddtoprint:RDD[LabeledPoint]= ....
MLUtils.saveAsLibSVMFile(rddtoprint, s"$newPath${File.separator}${fileName }")
ml.feature.LabeledPoint 的等效方法是什么?
好的,所以有两个选择。
1.自己做。生成为字符串并使用标准文件 IO
保存
def libSVMFileAsString():String= {
val sparse0=internalCheckColumnOrder()
val rows:Array[String]=sparse0.lpData().map { case LabeledPoint(label, features) =>
val sb = new StringBuilder(label.toString)
features.foreachActive { case (i, v) =>
sb += ' '
sb ++= s"${i + 1}:$v"
}
sb.mkString
}.collect()
val sbOut:mutable.StringBuilder=new mutable.StringBuilder()
rows.foreach(r=>sbOut.append(r + "\n"))
sbOut.toString()
}
转换为dataframe然后保存:
def labeledPintsAsDataFrame(): DataFrame =
{
lpData:RDD[LabeledPoint]=...
val sqlContext = spark.sqlContext
import sqlContext.implicits._
lpData().toDF
}
然后
dftoprint.write.format("libsvm").save(s"$newPath${File.separator}${fileName}")
至少早在Spark 2.2的时候,MLUtils中就有了辅助方法
https://spark.apache.org/docs/2.0.0/api/java/index.html?org/apache/spark/mllib/util/MLUtils.html
(几乎是遗留的)mllib LabeledPoint 保存到 libsvm 文件如下:
val rddtoprint:RDD[LabeledPoint]= ....
MLUtils.saveAsLibSVMFile(rddtoprint, s"$newPath${File.separator}${fileName }")
ml.feature.LabeledPoint 的等效方法是什么?
好的,所以有两个选择。 1.自己做。生成为字符串并使用标准文件 IO
保存 def libSVMFileAsString():String= {
val sparse0=internalCheckColumnOrder()
val rows:Array[String]=sparse0.lpData().map { case LabeledPoint(label, features) =>
val sb = new StringBuilder(label.toString)
features.foreachActive { case (i, v) =>
sb += ' '
sb ++= s"${i + 1}:$v"
}
sb.mkString
}.collect()
val sbOut:mutable.StringBuilder=new mutable.StringBuilder()
rows.foreach(r=>sbOut.append(r + "\n"))
sbOut.toString()
}
转换为dataframe然后保存:
def labeledPintsAsDataFrame(): DataFrame = { lpData:RDD[LabeledPoint]=... val sqlContext = spark.sqlContext import sqlContext.implicits._ lpData().toDF }
然后
dftoprint.write.format("libsvm").save(s"$newPath${File.separator}${fileName}")
至少早在Spark 2.2的时候,MLUtils中就有了辅助方法
https://spark.apache.org/docs/2.0.0/api/java/index.html?org/apache/spark/mllib/util/MLUtils.html