Ian*_*Ian 5 python pandas dask
我想从生成器懒惰地创建一个 Dask 数据框,它看起来像:
[parser.read(local_file_name) for local_file_name in repo.download_files())]
Run Code Online (Sandbox Code Playgroud)
parser.read 和 repo.download_files 都返回生成器(使用yield)。parser.read 生成一个键值对字典,它(如果我只是使用普通的 pandas)会将每个字典收集到一个列表中,然后使用:
df = pd.DataFrame(parsed_rows)
Run Code Online (Sandbox Code Playgroud)
从中创建 dask 数据框的最佳方法是什么?原因是a)我不一定知道返回的结果数量,b)我不知道它将部署的机器的内存分配。
或者我应该采取什么不同的做法(例如,也许创建一堆数据帧,然后将它们放入 dask 中?)
谢谢。
如果您想使用单机 Dask 调度程序,那么您需要知道必须开始有多少个文件。这可能类似于以下内容:
filenames = repo.download_files()
dataframes = [delayed(load)(filename) for filename in filenames]
df = dd.from_delayed(dataframes)
Run Code Online (Sandbox Code Playgroud)
如果您使用分布式调度程序,您可以动态添加新的计算,但这有点更高级。
| 归档时间: |
|
| 查看次数: |
1764 次 |
| 最近记录: |