从Spark中的textFile读取和转换数据

时间:2019-11-27 14:50:10

标签: scala apache-spark

我正在使用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。也许有一种无需拆分就可以对其进行转换的方法?

谢谢

1 个答案:

答案 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)
  }