我使用scala,我有一个case class Point(x: Double = 0, y: Double = 0)
,我正在读取一个textFile val data = sc.textFile("Dataset.txt").flatMap(line => line.split(","))
,数据采用以下格式(每个不同的值在文件中用换行符分隔):
133.559,244.112
88.242,100.222
我希望键是类型为Point,但在拆分后,数字被分开,我不知道如何将每两个数字合并在一起,形成一个点键在RDD中。也许有一种方法可以不分裂地转化它?
谢谢
发布于 2019-11-27 07:13:39
您不应该使用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)
}
https://stackoverflow.com/questions/59072808
复制