2015-08-30 258 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