Простой вопрос: все обучающие программы, которые я прочитал, показывают вам, как выводить результат параллельного вычисления в список (или, в лучшем случае, словарь), используя либо ipython.parallel, либо multiprocessing.Как выводить результаты параллельных вычислений на основе python (ipython-parallel или multiprocessing) в рамку данных pandas?
Не могли бы вы указать мне на простой пример вывода результата вычисления в общий кадр данных pandas с использованием библиотек?
http://gouthamanbalaraman.com/blog/distributed-processing-pandas.html - в этом учебном пособии показано, как читать входной фреймворк (код ниже), но тогда как я могу вывести результаты четырех параллельных вычислений в ОДИН информационный кадр, пожалуйста?
import pandas as pd
import multiprocessing as mp
LARGE_FILE = "D:\\my_large_file.txt"
CHUNKSIZE = 100000 # processing 100,000 rows at a time
def process_frame(df):
# process data frame
return len(df)
if __name__ == '__main__':
reader = pd.read_table(LARGE_FILE, chunksize=CHUNKSIZE)
pool = mp.Pool(4) # use 4 processes
funclist = []
for df in reader:
# process each data frame
f = pool.apply_async(process_frame,[df])
funclist.append(f)
result = 0
for f in funclist:
result += f.get(timeout=10) # timeout in 10 seconds
print "There are %d rows of data"%(result)
Почему вы не помещаете свой вывод в один список и не уменьшаете его до одного кадра данных, например 'reduce (lambda x, y: x.append (y), your_list)'? – crs
Вам нужно показать нам, что вы пытаетесь сделать, показать нам однопоточное решение и как вы собираетесь его многопроцессорно работать. – sirfz
Возможный дубликат [Parallelize apply after pandas groupby] (http://stackoverflow.com/questions/26187759/parallelize-apply-after-pandas-groupby) –