【发布时间】:2021-09-27 05:21:39
【问题描述】:
我使用 dask 而不是 pandas 进行 ETL,即从 S3 存储桶读取 CSV,然后进行一些转换。直到这里 - dask 比 pandas 更快地读取和应用转换!
最后,我使用 to_sql 将转换后的数据转储到 Redshift。 dask 中的 to_sql 转储比 pandas 花费的时间更多。
是否可以减少所花费的时间?如果不是,为什么在这种情况下 dask 比 pandas 慢?
【问题讨论】:
-
你确定它没有使用“延迟执行” - 也就是说,它仅在调用转储时才进行所有处理。你在用
parallel参数吗? -
不,也许我应该用
compute=True和parallel=True再试一次? -
@JithendraYenugula 您的问题还有很多要补充:处理的数据有多大? pandas 和 dask
to_sql秒有什么区别?理想情况下,您需要发布带有所有参数的 pandas 和 daskto_sql表达式。 -
我在两种情况下试验了 dask。 1)将 10 万行数据帧转储到 RedShift 需要 5 分钟,现在,2)转储 200 万行数据帧需要 20*5 分钟!大于1.5小时!我正在使用这个 -
dask.DataFrame.to_sql(chunksize=10000,compute=True,parallel=True, method='multi')。有什么办法可以优化这个?因为超过 1 小时的 RedShift 将使我在 ETL 管道中使用 EC2 而不是 Lambda!
标签: python pandas amazon-web-services amazon-redshift dask