【发布时间】:2018-10-13 14:19:43
【问题描述】:
我有如下数据框
type f1 f2 value
1 a xy 11
2 b ab 13
3 c na 16
3 c dir 18
3 c ls 23
我必须删除上一行,某些条件与下一行匹配,
例如从上表中,当 type == type(row-1) && f1 == f1(row-1) && abs(value - value (row-1))
所以我的桌子应该如下所示
type f1 f2 value
1 a xy 11
2 b ab 13
3 c dir 18
3 c ls 30
我认为我们可以利用滞后或领先特征,但无法获得准确的逻辑
【问题讨论】:
-
您可能必须使用用户定义的函数并添加一个新列,如果条件匹配则为 1,否则为 0,然后过滤该列。尽管要注意 udf 本质上比原生 spark 函数慢
-
问题是数据是按类型排序的,你想消除类型之间的重复还是只在下一行?
标签: scala apache-spark apache-spark-sql