2015-08-30 219 views
0

我尝试了解Spark的功能,但是我无法查看Python中是否有以下可能。将对象传递给Spark

我有某些对象是非可拣选(从C++包裹着SWIG)。 我有那些OBJ_LIST = [OBJ1,OBJ2,...] 所有这些对象有一个名为.dostuff

成员函数的对象列表,我想并行下面的循环在火花(为了运行它在AWS上,因为我没有内部的大架构,我们可能可以使用多处理,但我不认为我可以通过网络轻松发送对象):

[x.dostuff()for x in OBJ_LIST]

任何指针将不胜感激。

+0

你有多少个这样的对象(用GBytes)?它们是否在一台机器上一起装入RAM中? –

+1

“并行化循环”我不确定这是什么意思。 – eliasah

+0

这个“想法”是:因为玩家不是等值的(1可以用毫秒来计算,可以用2分钟,而且我有很多)取决于对象,我想通过网络发送给他们缩短全球计算时间。 –

回答

0

如果你的对象不可拣选,你的选择是相当有限的。如果你能在执行方面创建它们虽然(通常对于像数据库连接一个有用的选项),你可以parallelize常规列表(如可能构造函数的参数列表),如果再使用mapdostuff函数返回(picklable)如果您的dostuff函数被调用其副作用(如更新数据库或类似的),您想要使用的值或foreach