Python Spark将列表拆分为子列表除以元素内部的值之和

时间:2014-06-05 20:22:26

标签: python mapreduce aggregate-functions partitioning apache-spark

我尝试根据对象中某个参数的累积值将python中的对象列表拆分为子列表。让我以示例的形式介绍它:

我有一个像这样的对象列表:

[{x:1, y:2}, {x:3, y:2}, ..., {x:5, y: 1}]

我希望将此列表划分为子列表,其中子列表中x值的总和将相同(或大致相同),因此结果可能如下所示:

[[{x:3, y:1}, {x:3, y:1}, {x:4, y:1}], [{x:2, y:1}, {x:2, y:1}, {x:6, y:1}]]

其中x'es的总和等于10.我正在使用的对象有点复杂,我的x'是浮点值。所以我想聚合有序列表中的值,直到x'的总和为> = 10,然后开始创建下一个子列表。

就我而言,第一个元素列表是一个有序列表,总和必须在有序列表上进行。

我已经在C#中做了类似的事情,在那里我遍历所有元素,并保留一个“x”值的计数器。我将连续对象的x值加起来,直到达到我的阈值,然后创建一个新的子列表,然后重启我的计数器。

现在我想在python中重新实现它,然后将其与Spark一起使用。所以我正在寻找更多的“功能”实现,也许可以很好地使用map-reduce框架。我想不出另一种方法而不是迭代方法。

如果您有任何建议或可能的解决方案,我欢迎所有建设性意见。

0 个答案:

没有答案