根据求和条件筛选数组元素

eimct9ow  于 2021-07-09  发布在  Spark
关注(0)|答案(0)|浏览(295)

我有一个这样的Dataframe

id  |  val  |  sum_needs_to_be
------------------------------
1   |   1   |  3
------------------------------
1   |   2   |  3
------------------------------
1   |   1   |  3
------------------------------
2   |   3   |  2
------------------------------
2   |   1   |  2
------------------------------
2   |   1   |  2
------------------------------

它有一些id,对于每个id,我们得到多个记录,加上一个sum\u needs\u to\u be,这是VAL之和的过滤条件。例如,id1的求和目标为3,第一和第二条记录的值为1+2=3,则保留第一和第二行,而忽略第三条记录;id2的求和目标是2,因此需要第5和第6条记录,而忽略第4条记录。因为对于一个id可能有多个解决方案,所以只需要从上到下的第一个解决方案(如果可能,请始终首先获取最小的索引记录,如果索引1,5有效,而索引2,3,4也有效,请选择1,5,因为1是最小的)。
输出应该是

id  |  val  |  sum_needs_to_be
------------------------------
1   |   1   |  3
------------------------------
1   |   2   |  3
------------------------------
2   |   1   |  2
------------------------------
2   |   1   |  2
------------------------------

有人能帮我吗?非常感谢你。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题