python中的多处理大数据集

时间:2019-02-18 10:41:02

标签: python multiprocessing bigdata

我是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])

将file2第一列存储为字典元素:

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个CPU群集。但是不知道如何...

我尝试按照下面的链接操作,但不知何故被卡住了。

https://stackoverflow.com/questions/914821/producer-consumer-problem-with-python-multiprocessing
https://www.youtube.com/watch?v=sp7EhjLkFY4
https://www.youtube.com/watch?v=aysceqdGFw8

我们非常感谢您的帮助。

非常感谢。干杯。

1 个答案:

答案 0 :(得分:0)

我首先会使用熊猫进行测试:

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])])

也许这是一种已经为您服务的方法。