gpt4 book ai didi

python - Parquet 文件上 groupby 的最佳实践

转载 作者:太空宇宙 更新时间:2023-11-04 02:46:31 24 4
gpt4 key购买 nike

我们有一个 1.5BM 的记录,分布在几个 csv 文件中。我们需要对多个列进行分组以生成 count 聚合。
我们目前的策略是:

  1. 将它们加载到数据帧中(使用 Daskpyspark)
  2. 聚合列以生成 2 列作为键:值(我们不确定这是否值得)
  3. 将文件保存为 Parquet
  4. 读取 Parquet 文件(Daskpyspark)并对数据帧的索引运行 groupby。

Parquet 文件上高效分组的最佳实践是什么?
对索引执行 groupby 而不是对列(或一组列)执行 groupby 有多大好处?
我们知道有一个 partition 可以提供帮助——但在我们的例子中,我们需要对整个数据集进行分组——所以我们认为它不相关。

最佳答案

如果您使用已知聚合(例如 countmean)进行分组聚合,那么您的分区不会产生太大影响。无论如何,这应该相对较快。

如果您正在使用非平凡的应用函数进行分组应用(例如在每个组上运行 sklearn 模型),那么如果您存储数据以便分组列以 Parquet 排序,您将获得更快的体验.

编辑:

话虽如此,尽管 groupby-count 并不特别鼓励智能分区,但切换到 Parquet 仍然很好。您会发现您可以更快地阅读相关专栏。

作为快速免责声明,dask.dataframe 目前不使用 parquet 中的计数统计信息来加速查询,除非在 read_parquet 函数中进行过滤并帮助识别已排序的列。

关于python - Parquet 文件上 groupby 的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44999814/

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