我想从一个巨大的csv文件中读取,通过“,”分割值将每一行分配给一个向量。最后,我的目标是拥有一个包含值的矢量RDD。 但是在Seq:
之后我收到了一个错误类型不匹配; found:需要的单位:org.apache.spark.mllib.linalg.Vector涉及默认参数的应用程序中发生错误。
到目前为止,我的代码是这样的:
val file = "/data.csv"
val data: RDD[Vector] =sc.parallelize(
Seq(
for(line <- Source.fromFile(file).getLines){
Vectors.dense(line.split (",").map (_.toDouble).distinct)
}
)
)
答案 0 :(得分:1)
您应该使用 sparkContext的textFile api 作为
阅读它val file = "/data.csv"
val data = sc.textFile(file).map(line => Vectors.dense(line.split (",").map(_.toDouble).distinct))
你应该得到org.apache.spark.rdd.RDD[org.apache.spark.mllib.linalg.Vector]
但如果您正在寻找RDD[Vector[Double]]
,那么您可以直接进行
val file = "/data.csv"
val data = sc.textFile(file).map(line => line.split (",").map(_.toDouble).distinct.toVector)