我想讓每個python工作人員使用rpy2啓動R shell。我可以在某種設置階段執行此操作,類似於當您導入用於稍後執行程序任務的Python模塊時會發生這種情況嗎?例如:我可以在安裝過程中將外部(R)進程連接到每個pyspark工作人員
import numpy as np
df.mapPartitions(lambda x: np.zeros(x))
在我來說,我要開始,而不是在每個執行人及進口[R庫的R外殼,這將是這個樣子:
import rpy2.robjects as robjects
from rpy2.robjects.packages import importr
rlibrary = importr('testrlibrary')
df.mapPartitions(lambda x: rlibrary.rfunc(x))
但我不希望這樣發生在mapPartitions
的調用中,因爲那樣會發生在任務級別,而不是每個執行者核心執行一次。這種方法的工作,看起來更像下面的例子,但對我來說沒有用。
def model(partition):
import rpy2.robjects as robjects
from rpy2.robjects.packages import importr
rlibrary = importr('testrlibrary')
rlibrary.rfunc(partition)
df.mapPartitions(model)
在這裏看到相關的問題:[如何分區持有R函數的pyspark RDD](http://stackoverflow.com/questions/34669751/) – retrocookie