【问题标题】:How to read a single large parquet file into multiple partitions using dask/dask-cudf?如何使用 dask/dask-cudf 将单个大型 parquet 文件读入多个分区?
【发布时间】:2019-10-17 16:35:26
【问题描述】:

我正在尝试使用dask_cudf/dask 读取单个大parquet 文件(大小> gpu_size),但它目前正在将其读入单个分区,我猜这是从推断的预期行为文档字符串:

dask.dataframe.read_parquet(path, columns=None, filters=None, categories=None, index=None, storage_options=None, engine='auto', gather_statistics=None, **kwargs):

    Read a Parquet file into a Dask DataFrame
    This reads a directory of Parquet data into a Dask.dataframe, one file per partition. 
    It selects the index among the sorted columns if any exist.

是否有解决方法可以将其读入多个分区?

【问题讨论】:

    标签: dask cudf


    【解决方案1】:

    Parquet 数据集可以保存到单独的文件中。每个文件可能包含单独的行组。 Dask Dataframe 将每个 Parquet 行组读入一个单独的分区。

    根据您所说的,您的数据集似乎只有一个行组。如果是这种情况,那么不幸的是,Dask 在这里真的无能为力。

    您可能希望返回数据源以查看它是如何保存的,并验证保存此数据集的任何过程是否以不会创建非常大的行组的方式进行。

    【讨论】:

    • 这与熊猫文档中的partitioning parquet fiels 有关吗?它也使用了分区这个词,但它似乎是按列,而不是按行。我正在尝试存储一个镶木地板数据集,例如(使用熊猫),然后我可以用 dask 将其读取到多个分区中。
    • 我有pyarrow.parquet.ParquetFile("/tmp/test2.parquet").num_row_groups == 10,但是dask.dataframe.read_parquet("/tmp/test2.parquet").npartitions == 1。看起来它正在将多个行组读入一个分区?
    • 如果是这种情况,那么我建议生成MVCE 并在github.com/dask/dask/issues/new 发布问题。
    猜你喜欢
    • 2017-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 2018-03-01
    • 2021-04-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多