Многопроцессорные большие наборы данных в python - PullRequest
0 голосов
/ 18 февраля 2019

Я новичок в многопроцессорности в python, и мне было интересно, смогу ли я сделать это для анализа данных.

Код:

file1=open('./R.csv','r').readlines()
file2=open('./N.csv','r').readlines()

Определение словаря:

Dict1={}
Dict2={}

Сохранение первого столбца file1 в качестве элементов словаря:

    for k1 in range(0,len(file1)):
            d1=file2[k1].split(',')[0]
            Dict1[k1]=d1
#print(Dict1[1])

Хранение файла2первый столбец в качестве элементов словаря:

for k2 in range(0,len(file2)):
        d2=file2[k2].split(',')[0]
        Dict2[k2]=d2
#print(new_Dict[0])

Чтобы проверить, совпадают ли элементы в Dict1 со строками Dict2, если это так, выведите соответствующую строку в file1 и file2:

for i in range(0,len(file1)):
        for j in range(0,len(file2)):
                if Dict1[i] in Dict2[j]:
                        print(Dict1[i]+","+file1[i].split(',')[1].strip()+","+file2[j].split(',')[1].strip())

Этот код работает, но выполнение задания занимает много времени, поскольку оба файла представляют собой огромный набор данных.Я хочу использовать все 64 кластера ЦП на моей рабочей станции на сервере.Но не знаю, как ...

Я пытался перейти по этим ссылкам ниже, но как-то застрял.

/790671/problema-proizvoditelya-potrebitelya-s-mnogoprotsessornosty-python
https://www.youtube.com/watch?v=sp7EhjLkFY4
https://www.youtube.com/watch?v=aysceqdGFw8

Любая помощь действительно приветствуется.

Большое спасибо.Приветствия.

1 Ответ

0 голосов
/ 18 февраля 2019

Сначала я бы протестировал с помощью панд:

import pandas as pd

df_r = pd.read_table('./R.csv', header=None)   # check if standard delimiter ',' works...
df_n = pd.read_table('./N.csv', header=None)   # ... otherwise add e.g. sep='\s+,\s+'

print(df_r[df_r[0].isin(df_n[1])])

Возможно, это подход, который уже работает для вас.

...