【发布时间】:2017-01-03 13:29:36
【问题描述】:
我是 Spark Scala 的新手。我遇到了一种情况,我必须比较数据集中特定列的值,例如:
源数据
Source Destination Distance
Austin Houston 200
Dallas Houston 400
Kansas Dallas 700
结果
Source1 Destination1 Distance1 Source2 Destination2 Distance2 DistDiff
Dallas Houston 400 Kansas Dallas 700 300
根据情况,我必须比较后续行的距离,如果差异大于或等于 300,则将记录保存在 Resultant 数据集中 700 - 400 = 300
我遇到的示例是具有在任何特定数据集上按行执行的函数,但我的场景是使用连续行。
【问题讨论】:
-
Spark RDD/DataFrame 条目没有排序。那么如何维护秩序呢?
-
我最近做了类似的事情......你可以使用
mapPartitions拼凑一些大部分时间都有效的东西。无论如何,您最终都会在部分边缘丢弃数据。 -
它将按我未包含在示例中的日期时间排序。
标签: scala apache-spark dataframe dataset pyspark