在das中设置拼花地板输出文件的大小

2024-09-29 19:23:07 发布

您现在位置:Python中文网/ 问答频道 /正文

当使用daskdataframeto_parquet方法时,有没有办法像spark一样设置默认的拼花文件大小?在

我的问题是,当我用partition_onkwarg保存它时,每个分区dir都会得到几个小文件,因此使用“amazonaathena”进行查询的速度非常慢。在

中间的期望结果(如果文件大小控制不可用)是每个分区目录n个文件(现在1个就足够了)。在

我认为保证每个分区dir有一个文件的唯一方法是重新分区到一个分区,然后使用to_parquet方法(但是这是非常低效的)。在

有更好的方法吗?在


Tags: 文件to方法目录dir速度spark分区
1条回答
网友
1楼 · 发布于 2024-09-29 19:23:07

当前的行为是按设计的,允许每个工作进程独立地处理一个分区,并写入其他进程没有写入的文件。否则,在为每个目录写入数据后,需要某种类型的锁,或某种合并步骤。在

您可以做的是使用set_index将数据洗牌到一个分区中,该分区对应于要分区的列的每个值(可能使用divisions=关键字);现在,to_parquet将为这些值中的每个值生成一个文件。如果您希望文件自动结束在正确的目录中,并修剪现在冗余的索引,那么您应该使用to_delayed()并创建一个延迟函数,该函数接受一个分区(pandas dataframe)并将其写入正确的位置。在

相关问题 更多 >

    热门问题