当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python dask.dataframe.to_parquet用法及代码示例


用法:

dask.dataframe.to_parquet(df, path, engine='auto', compression='default', write_index=True, append=False, overwrite=False, ignore_divisions=False, partition_on=None, storage_options=None, custom_metadata=None, write_metadata_file=True, compute=True, compute_kwargs=None, schema=None, name_function=None, **kwargs)

将 Dask.dataframe 存储到 Parquet 文件

参数

dfdask.dataframe.DataFrame
path字符串或 pathlib.Path

数据的目标目录。为远程数据添加 s3://hdfs:// 等协议。

engine{‘auto’, ‘fastparquet’, ‘pyarrow’},默认 ‘auto’

要使用的 Parquet 库。如果只安装了一个库,它将使用那个;如果两者都使用,它将使用‘fastparquet’。

compression字符串或字典,默认 ‘default’

"snappy" 这样的字符串或将列名映射到像 {"name": "gzip", "values": "snappy"} 这样的压缩器的字典。默认值为 "default" ,它对选择的引擎使用默认压缩。

write_index布尔值,默认 True

是否写索引。默认为真。

append布尔值,默认为 False

如果为 False(默认),则从头开始构造 data-set。如果为 True,则将新的 row-group(s) 添加到现有的 data-set。在后一种情况下,data-set 必须存在,并且模式必须与输入数据匹配。

overwrite布尔值,默认为 False

在写入数据集之前是否删除path 的内容。默认值为假。如果为 True,则指定的路径必须对应于一个目录(但不是当前工作目录)。如果 append=True ,则此选项不能设置为 True。注意:即使当前写入操作失败,overwrite=True 也会删除原始数据。使用风险自负。

ignore_divisions布尔值,默认为 False

如果 False(默认)在先前的分区与新的附加分区重叠时引发错误。如果 append=False,则忽略。

partition_on列表,默认无

通过拆分这些字段的值来构造基于目录的分区。每个 dask 分区都会产生一个或多个数据文件,不会有全局 groupby。

storage_options字典,默认无

要传递到 file-system 后端的键/值对(如果有)。

custom_metadata字典,默认无

要包含在所有页脚元数据中的自定义键/值元数据(以及全局“_metadata” 文件,如果适用)。请注意,自定义元数据可能不包含保留的 b“pandas”键。

write_metadata_file布尔值,默认为真

是否写入特殊的“_metadata” 文件。

compute布尔值,默认为真

如果True(默认)则立即计算结果。如果 False 则返回 dask.dataframe.Scalar 对象以供将来计算。

compute_kwargs字典,默认为真

传递给计算方法的选项

schemaSchema 对象、dict 或 {“infer”, None},默认为 None

用于输出数据集的全局模式。或者,可以指定 pyarrow 类型的 dict(例如 schema={“id”: pa.string()} )。对于这种情况,从字典中排除的字段将从 _meta_nonempty 推断。如果“infer”,第一个非空非空分区将用于推断“object”列的类型。如果没有(默认),我们让后端为每个不同的输出分区推断模式。如果分区产生不一致的模式,pyarrow 会在写入共享的 _metadata 文件时抛出错误。请注意,“fastparquet” 引擎会忽略此参数。

name_function可调用,默认无

为每个输出分区生成文件名的函数。该函数应该接受一个整数(分区索引)作为输入并返回一个字符串,该字符串将用作相应分区的文件名。应该保留分区的字典顺序。如果未指定,文件将使用约定 part.0.parquet , part.1.parquet , part.2.parquet ,……等为 DataFrame 中的每个分区创建。

**kwargs

要传递到特定后端的额外选项。

注意

每个分区将被写入一个单独的文件。

例子

>>> df = dd.read_csv(...)  
>>> df.to_parquet('/path/to/output/', ...)

默认情况下,将在指定的输出目录中使用约定 part.0.parquet , part.1.parquet , part.2.parquet ,...等为 DataFrame 中的每个分区创建文件。要自定义每个文件的名称,您可以使用 name_function= 关键字参数。传递给name_function 的函数将用于为每个分区生成文件名,并且应该期望分区的索引整数作为输入并返回一个字符串,该字符串将用作相应分区的文件名。 name_function 生成的字符串必须保持其各自分区索引的顺序。

例如:

>>> name_function = lambda x: f"data-{x}.parquet"
>>> df.to_parquet('/path/to/output/', name_function=name_function)

将导致创建以下文件:

/path/to/output/
    ├── data-0.parquet
    ├── data-1.parquet
    ├── data-2.parquet
    └── ...

相关用法


注:本文由纯净天空筛选整理自dask.org大神的英文原创作品 dask.dataframe.to_parquet。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。