用法:
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 文件
- df:dask.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:字典,默认为真
传递给计算方法的选项
- schema:Schema 对象、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 └── ...
相关用法
- Python dask.dataframe.to_records用法及代码示例
- Python dask.dataframe.to_datetime用法及代码示例
- Python dask.dataframe.to_hdf用法及代码示例
- Python dask.dataframe.to_sql用法及代码示例
- Python dask.dataframe.to_numeric用法及代码示例
- Python dask.dataframe.to_csv用法及代码示例
- Python dask.dataframe.tseries.resample.Resampler.agg用法及代码示例
- Python dask.dataframe.tseries.resample.Resampler.mean用法及代码示例
- Python dask.dataframe.Series.apply用法及代码示例
- Python dask.dataframe.DataFrame.applymap用法及代码示例
- Python dask.dataframe.Series.clip用法及代码示例
- Python dask.dataframe.Series.prod用法及代码示例
- Python dask.dataframe.Series.fillna用法及代码示例
- Python dask.dataframe.DataFrame.sub用法及代码示例
- Python dask.dataframe.compute用法及代码示例
- Python dask.dataframe.DataFrame.mod用法及代码示例
- Python dask.dataframe.Series.to_frame用法及代码示例
- Python dask.dataframe.read_table用法及代码示例
- Python dask.dataframe.read_hdf用法及代码示例
- Python dask.dataframe.Series.sum用法及代码示例
注:本文由纯净天空筛选整理自dask.org大神的英文原创作品 dask.dataframe.to_parquet。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。