2017-05-03 75 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(...

與交易是罪魁禍首。