如何将案例类的RDD映射到LabeledPoint(标签,特征向量)。
这是案例类考试的RDD(x:Double,y:Double):
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)
尝试这样做 -
val parsedData = aRDD.map(row =>
new LabeledPoint(
row._1,
Vectors.dense(row._2))
获取错误"值_1不是main.scala.spark.Q1Partb.Q1.Exam"的成员。在row._1和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"的成员。 for line.split(',')
答案 0 :(得分:1)
如果您有RDD [考试],您应该可以写
val parsedData = aRDD.map(exam => LabeledPoint(exam.x, Vectors.dense(exam.y))
答案 1 :(得分:1)
我遇到了这个问题,因为我的变量名是由函数获取的。
所以
private val Seq(transaction, transaction2) = insertTx(...
成了
private val Seq(transaction1, transaction2) = insertTx(...
交易是罪魁祸首。