我正在使用Scala,我有一个case class Point(x: Double = 0, y: Double = 0)
,正在读取一个文本文件val data = sc.textFile("Dataset.txt").flatMap(line => line.split(","))
,数据采用以下格式(每个不同的值在文件中用换行符分隔):>
133.559,244.112
88.242,100.222
我希望键的类型为Point,但拆分后数字会分开,而且我不知道如何将它们中的每两个合并在一起以在RDD中形成Point Key。也许有一种无需拆分就可以对其进行转换的方法?
谢谢
答案 0 :(得分:1)
您不应该flatMap:
val rdd: RDD[String] = spark.sparkContext.parallelize(Seq(
"133.559,244.112","88.242,100.222"
))
val result: RDD[Point] = rdd.map{ e =>
val Array(x,y) = e.split(",").map(_.toDouble)
Point(x,y)
}