gpt4 book ai didi

python - 来自大型无序 csv 文件的 dask set_index

转载 作者:太空宇宙 更新时间:2023-11-03 11:42:25 24 4
gpt4 key购买 nike

冒着有点跑题的风险,我想展示一个简单的解决方案,用于在 dask 数据框中加载大型 csv 文件,其中可以应用选项 sorted=True 并节省大量处理时间。

我发现在 dask 中执行 set_index 的选项对于我用于学习的玩具集群的大小和文件大小 (33GB) 不可行。

因此,如果您的问题是将大型未排序的 CSV 文件(数十 GB)加载到 dask 数据框中并快速开始执行 groupbys,我的建议是预先使用 unix 命令“sort”对它们进行排序。

排序处理需求可以忽略不计,它不会使您的 RAM 限制超出无法管理的限制。您可以定义要运行/排序的并行进程的数量以及用作缓冲区的 ram。就您的磁盘空间而言,这太棒了。

这里的技巧是在发出命令之前在您的环境中导出 LC_ALL=C。无论哪种方式,pandas/dask 排序和 unix 排序都会产生不同的结果。

这是我用过的代码

export LC_ALL=C

zcat BigFat.csv.gz |
fgrep -v ( have headers?? take them away)|
sort -key=1,1 -t "," ( fancy multi field sorting/index ? -key=3,3 -key=4,4)|
split -l 10000000 ( partitions ??)

结果准备好了

ddf=dd.read_csv(.....)
ddf.set_index(ddf.mykey,sorted=True)

希望对你有帮助

JC

最佳答案

正如上面所讨论的,我只是将其发布为我的问题的解决方案。希望对他人有用。

我并不是说这是最好的、最有效的或更 pythonic 的! :-)

关于python - 来自大型无序 csv 文件的 dask set_index,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46971219/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com