2017-05-03 31 views
-2

如何将案例类的RDD映射到LabeledPoint(标签,特征向量)。如何将案例类的RDD映射到LabeledPoint(标签,特征向量)

这情况下类考试的RDD(X:双,Y:双):

DS(1.0,6.0)

DS(2.0,8.0)

DS(3.0 10.0)

DS(3.0,10.0)

DS(4.0,12.0)

DS(5.0,14.0)

试着这样做 - 在row._1

 val parsedData = aRDD.map(row => 
    new LabeledPoint(
    row._1, 
    Vectors.dense(row._2)) 

收到错误 “值_1不main.scala.spark.Q1Partb.Q1.Exam的一员”,并row._2

和此 -

  val parsedData = aRDD.map{line => 
      val Array(rawLabel, rawfeatures) = line.split(',') 
      val features = rawfeatures) .split(' ').map(_.toDouble) 
      LabeledPoint(rawLabel.toDouble, Vectors.dense(features))} 

获得错误“递归值X $ 4需要型”为rawLabel和“值分割不是main.scala.spark.Q1Partb.Q1.ds的成员”为line.split(“” )

回答

1

如果你有一个RDD [考试]你应该能够编写

val parsedData = aRDD.map(exam => LabeledPoint(exam.x, Vectors.dense(exam.y)) 
1

我有这个问题,因为我的变量名是采取一个功能。

所以 private val Seq(transaction, transaction2) = insertTx(...

成为

private val Seq(transaction1, transaction2) = insertTx(...

与交易是罪魁祸首。