【发布时间】:2020-01-27 14:46:03
【问题描述】:
我是 Scala 和 Spark 的新手,我不知道该怎么做。
我已经预处理了一个 CSV 文件,生成了一个包含这种格式的列表的 RDD:
List("2014-01-01T23:56:06.0", NaN, 1, NaN)
List("2014-01-01T23:56:06.0", NaN, NaN, 2)
所有列表都有相同数量的元素。
我想要做的是组合具有相同第一个元素(时间戳)的列表。例如,我希望这两个示例列表只生成一个列表,具有以下值:
List("2014-01-01T23:56:06.0", NaN, 1, 2)
感谢您的帮助:)
【问题讨论】:
-
所以您正在寻找 group by 时间戳。要么你切换到数据框,你可以使用
groupBy,或者你可以继续使用RDD,使用rdd.map(list => list.head -> list.tail).reduceByKey(yourReduceFunc)之类的东西。 -
List 不应该这样使用。 List[Any] 没用。你需要一个
case class A(datetime: String, a: Double, b : Double, c: Doule)和一个List[A]的列表。你可以groupBy(_.datetime)然后减少结果的右边部分。
标签: scala list apache-spark