我正在访问一个非常大的 Pandas 数据框作为全局变量。此变量通过joblib并行访问。
例如。
df = db.query("select id, a_lot_of_data from table")
def process(id):
temp_df = df.loc[id]
temp_df.apply(another_function)
Parallel(n_jobs=8)(delayed(process)(id) for id in df['id'].to_list())
以这种方式访问原始 df 似乎跨进程复制数据。这是出乎意料的,因为原始 df 在任何子进程中都没有改变?(或者是吗?)