我正在考虑为一个项目做些什么。我有一个3GB的大型csv文件,包含50,000个变量和60,000条记录。在运行时,我不知道我需要哪些字段。我需要将一个函数应用于数据集一百万次。我已经使用dask延迟来快速应用这些功能。但是,当我使用Compute来获取结果时,处理时间非常慢。我对dask期待太多了吗?或者我可以对计算循环做些什么来加速处理。感谢您提供的任何指导或帮助。见下面的程序。我最关心的是results = compute(answers)
行。
import dask
import dask.dataframe as dd
from dask import compute, delayed
import time
start_time = time.time()
dask.set_options(get=dask.threaded.get)
def get_base(input):
return df['unwtd'].sum()
df = dd.read_csv("*.csv", sep="|", quoting=3, encoding = "utf_8", dtype = 'object', error_bad_lines=False, sample=(10000000))
df['unwtd']=1.0
df['Total'] = "_1"
values = [delayed(get_base)(x) for x in range(2)]
print("Getting Answers %s" % (time.time() - start_time))
answers = compute(*values, get=dask.threaded.get)
print("Getting Results %s" % (time.time() - start_time))
results = compute(answers)
print(results)
print("Done")
print("Total seconds %s " % (time.time() - start_time))