Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在不重新加载大型CSV的情况下进行多个Dask计算_Python_Dask - Fatal编程技术网

Python 如何在不重新加载大型CSV的情况下进行多个Dask计算

Python 如何在不重新加载大型CSV的情况下进行多个Dask计算,python,dask,Python,Dask,我必须处理大量(约10GB)CSV文件。我目前正在使用Dask将数据预处理成一些聚合的统计数据,然后用常规数据进一步分析 我遇到的问题是Dask为每次调用compute()重新加载数据。一些虚拟代码来说明问题: import dask.dataframe as dd ddf = dd.read_csv('very_large_file.csv') # ca. 10GB # Every line seems to trigger painfully slow re-reading of th

我必须处理大量(约10GB)CSV文件。我目前正在使用Dask将数据预处理成一些聚合的统计数据,然后用常规数据进一步分析

我遇到的问题是Dask为每次调用
compute()
重新加载数据。一些虚拟代码来说明问题:

import dask.dataframe as dd

ddf = dd.read_csv('very_large_file.csv')  # ca. 10GB

# Every line seems to trigger painfully slow re-reading of the CSV file from disk!
groupstats_A = ddf.groupby(['col1', 'col2']) \
                  .mean() \
                  .compute()
groupstats_B = ddf.groupby(['col3']) \
                  .mean() \
                  .compute()
groupstats_C = ddf.groupby(['col1', 'col2', 'col3']) \
                  .mean() \
                  .compute()

有没有办法优化此代码,使
compute()
函数不必每次调用都从磁盘读取大文件?

这很像一个副本,但我找不到原始的

您可以按如下方式传递多个内容进行计算,任何可能的中间对象都将被共享

groupstats_A = ddf.groupby(['col1', 'col2']) \
                  .mean()
groupstats_B = ddf.groupby(['col3']) \
                  .mean()
groupstats_C = ddf.groupby(['col1', 'col2', 'col3']) \
                  .mean()
A, B, C = dask.compute(groupstats_A, groupstats_B, groupstats_C)

谢谢我也找了重复的,但也找不到。这个答案正是我想要的,它让一切变得更快。