我的最终目标是将 SQL/Python 一起用于一个有太多数据供熊猫处理的项目(至少在我的机器上)。所以,我去了dask:
对于 #1 和 #2,它们需要大约 30 秒才能使用最少的内存来执行(几个 SQL 查询大约 200 行代码使用 dask 操作大型数据集)。又快又好玩!!!
但是,上面的#3 一直是主要的瓶颈。在(1. 内存和 2. 速度(执行时间))方面,使用 dask 或其他替代方法完成 #3 的一些有效方法是什么?查看更多背景,以及我尝试过的内容和得出的一些结论。
对于上面的#1、#2 和#3,由于内存限制/执行时间长,这是我发现用熊猫无法完成的任务,但是dask用出色的颜色解决了上面的#1 和#2,但我仍然与#3 苦苦挣扎——以自动方式将数据返回到 SQL 表中,我没有发送到 .csv 然后导入到 SQL Server。我试图.compute()将 dask 数据帧转换为 Pandas 数据帧,然后写入to_sql,但是这种方式违背了使用 dask 读取/数据模型的目的,并且再次耗尽内存/无论如何都要永远执行。
因此,新计划是to_csv每天生成一个新的 .csv 并使用查询将数据批量插入到表中。我认为这仍然是一个可行的解决方案;但是,今天,我很高兴地发现 dask 发布了一个新to_sql功能(https://docs.dask.org/en/latest/dataframe-api.html#dask.dataframe.DataFrame.to_sql)。利用有关此主题的现有 StackOverflow 文章/博客(例如来自 Francois …