我正在使用配置如下的服务器:
RAM - 56GB 处理器 - 2.6 GHz x 16 核 如何使用 shell 进行并行处理?如何利用处理器的所有内核?
我必须从包含数百万个条目的文本文件中加载数据,例如一个文件包含 50 万行数据。我正在使用 django python 脚本在 postgresql 数据库中加载数据。但是即使我有这么好的配置,在数据库中添加数据也需要很多时间。服务器,但我不知道如何并行利用服务器资源,以减少处理数据的时间。昨天我只从文本文件加载了 15000 行数据到 postgresql,花了将近 12 个小时才完成。我的 django python 脚本如下:
import re
import collections
def SystemType():
filename = raw_input("Enter file Name:")
in_file = file(filename,"r")
out_file = file("SystemType.txt","w+")
for line in in_file:
line = line.decode("unicode_escape")
line = line.encode("ascii","ignore")
values = line.split("\t")
if values[1]:
for list in values[1].strip("wordnetyagowikicategory"):
out_file.write(re.sub("[^\ a-zA-Z()<>\n""]"," ",list))
# Eliminate Duplicate Entries from extracted data using regular expression
def FSystemType():
lines_seen = set()
outfile = open("Output.txt","w+")
infile = open("SystemType.txt","r+")
for line in infile:
if line not in lines_seen:
l = line.lstrip()
# Below reg exp is used to handle Camel Case.
outfile.write(re.sub(r'((?<=[a-z])[A-Z]|(?<!\A)[A-Z](?=[a-z]))', r' \1', l).lower())
lines_seen.add(line)
infile.close()
outfile.close()
sylist=[]
def create_system_type(stname):
syslist=Systemtype.objects.all()
for i in syslist:
sylist.append(str(i.title))
if not stname in sylist:
slu=slugify(stname)
st=Systemtype()
st.title=stname
st.slug=slu
# st.sites=Site.objects.all()[0]
st.save()
print "one ST added."