У меня есть функция,
def Recommendation(df1,df2,array1,array2):
for i in range(len(df1)):
. #do something
.
.
result = {} #The result is a dictionary and is inserted into mongodb
db.collectionname.insert_one(result)
Данные df1 велики, и для завершения выполнения в цикле требуется много времени. Как распараллелить этот процесс в Python, используя несколько аргументов?
def parallelize_dataframe(df,func):
df_split = np.array_split(df, num_partitions)
pool = Pool(num_cores)
pool.starmap(func,df_split)
pool.close()
pool.join()
num_partitions = 5
num_cores = 5
if __name__ == '__main__':
df1= pd.read_csv("filename.csv")
df2= pd.read_csv("filename2.csv")
array1 = numpy.array1 #Loading numpy array
array2 = numpy.array2
parallelize_dataframe(df1, Recommendation(df1,df2,array1,array2))
Этот процесс очень медленный. Я не уверен, если работа распределена по ядрам. Пожалуйста, помогите.