加载大型数据集和使用dask.delayed的最佳实践

问题描述

我有一个550,000行文本的csv文件。我将其读入pandas数据框,在其上循环并对其执行一些操作。这是一些示例代码

import pandas as pd

def my_operation(row_str):
   #perform operation on row_str to create new_row_str
   return new_row_str

df = pd.read_csv('path/to/myfile.csv')
results_list = []
for ii in range(df.shape[0]):
   my_new_str = my_operation(df.iloc[ii,0])
   results_list.append(my_new_str)

我开始实现dask.delayed,但是在阅读Delayed Best Practices section之后,我不确定是否以最佳方式使用dask.delayed解决此问题。以下是与dask.delayed相同的代码

import pandas as pd
import dask

def my_operation(row_str):
   #perform operation on row_str to create new_row_str
   return new_row_str

df = pd.read_csv('path/to/myfile.csv')
results_list = []
for ii in range(df.shape[0]):
   my_new_str = dask.delayed(my_operation)(df.iloc[ii,0])
   results_list.append(my_new_str)

results_list = dask.compute(*results_list)

我正在具有8个内核的单台计算机上运行此程序,想知道是否存在更优化的方法来加载此大型数据集并在每一行上执行相同的操作?

在此先感谢您的帮助,让我知道我还能提供什么!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)