使用 dask 将 parquet 文件拆分为较小的块

Ser*_*rge 3 python dask data-science

我正在尝试使用 DASK 和以下代码片段分割镶木地板文件

import dask.dataframe as pd
df = pd.read_parquet(dataset_path, chunksize="100MB")
df.repartition(partition_size="100MB")
pd.to_parquet(df,output_path)
Run Code Online (Sandbox Code Playgroud)

我的输入中只有一个物理文件,即 file.parquet

该脚本的输出也只有一个文件,即part.0.parquet。

根据partition_size和chunksize参数,我应该在输出中有多个文件

任何帮助,将不胜感激

Dav*_*idK 6

df.repartition(partition_size="100MB")返回一个Dask Dataframe

你必须写:

df = df.repartition(partition_size="100MB")
Run Code Online (Sandbox Code Playgroud)

您可以检查创建的分区数量df.npartitions

另外,您可以使用以下内容来编写镶木地板文件:

df.to_parquet(output_path)
Run Code Online (Sandbox Code Playgroud)

由于 Parquet 文件旨在处理大文件compression=,因此在编写 Parquet 文件时还应该考虑使用该参数。

你应该得到你所期望的

注意:写作import dask.dataframe as pd具有误导性,因为import dask.dataframe as dd常用