在许多镶木地板文件上重新进行数据帧重组

问题描述 投票:0回答:1

我有一个遍布许多工作节点的dask集群。我还有一个带有尽可能多的镶木地板文件的S3桶(现在500k文件,未来可能是三倍大小)。

实木复合地板中的数据主要是文本:[username,first_name,last_name,email,email_domain]

我想加载它们,重新洗牌,并存储新的分区。我希望能够基于email_domain对opeartions进行分组,所以我想为每个email_domain分组一个新的镶木地板文件

目前我使用的是from_delayed和groupby,但生成的DAG有一个shuffle-split图层的n**2层 - 这不适合我的调度程序内存。一些事情:

def store(x):
   path = f's3://bucket/{x.name}.parquet'
   x.to_parquet(path)
   return path

z = df.groupby('email_domain').apply(store, meta=('email_domain', 'object'))
visualize(z)
z.compute()
dask dask-distributed
1个回答
0
投票

是的,groupby-apply很昂贵,特别是并行。

我希望事情仍然有效,但速度慢。

© www.soinside.com 2019 - 2024. All rights reserved.