我有一个分散的集群,分布在许多工作节点上。 我也有一个S3存储桶,其中存储了尽可能多的实木复合地板文件(目前为500k文件,将来可能是其三倍)。
实木复合地板中的数据主要是文本: [用户名,名字,姓氏,电子邮件,电子邮件域]
我想加载它们,重新排列它们,并存储新分区。 我希望能够根据email_domain对选择项进行分组,因此我想针对每个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()
答案 0 :(得分:0)
是的,groupby-apply非常昂贵,尤其是并行应用。
我希望事情仍然可以进行,但是会很慢。