我知道Windows不支持分支的事实,因此您需要使用以下方式保护并行化功能:
filename -> parallel.py
def do_parallelization(df):
partition_size = int(np.ceil(len(df)/n_job))
partitions = minibatch(df.values, size=partition_size)
executor = Parallel(n_jobs=n_job, backend="multiprocessing", prefer="processes", verbose=5)
do = delayed(partial(transform_texts_new, nlp))
tasks = (do(batch_id, small_df, col_name) for batch_id, small_df in enumerate(partitions, 1))
result = executor(tasks)
return result
if __name__ == "__main__":
df = pd.read_csv("some_df.csv")
result = do_prallelization(df)
当您将其作为脚本运行时,效果很好。 但是我需要将此集成到程序中,所以我有一个协调器文件:
filename -> orch.py
import parallel as p
df = pd.read_csv("some_df.csv")
result = p.do_parallelization(df)
不是为我工作吗?
ImportError:[joblib]在不支持分支的系统上尝试执行并行计算而不保护您的导入。要在脚本中使用并行计算,必须使用“ if ____name____ =='____main____'”保护主循环。请参阅Parallel上的joblib文档以获取更多信息