maxframe.dataframe.DataFrame.to_parquet#

DataFrame.to_parquet(path, engine='auto', compression='snappy', index=None, partition_cols=None, storage_options: dict = None, **kwargs)#

将 DataFrame 写入二进制 parquet 格式,每个 chunk 将被写入一个 Parquet 文件。

参数:
  • path (str or file-like object) -- 如果 path 是带有通配符的字符串,例如 '/to/path/out-*.parquet',to_parquet 会尝试写入多个文件,例如 chunk (0, 0) 会将数据写入 '/to/path/out-0.parquet'。如果 path 是不带通配符的字符串且 partition_cols 为 None,所有数据将被写入单个文件。如果 path 是不带通配符的字符串或 partition_cols 不为 None,我们将把它视为一个目录。

  • engine ({'auto', 'pyarrow', 'fastparquet'}, default 'auto') -- 使用的 Parquet 库。默认行为是尝试使用 'pyarrow',如果 'pyarrow' 不可用则回退到 'fastparquet'。

  • compression ({'snappy', 'gzip', 'brotli', None}, default 'snappy') -- 要使用的压缩名称。使用 None 表示不压缩。

  • index (bool, default None) -- 如果为 True,则在文件输出中包含 dataframe 的索引。如果为 False,则不会将索引写入文件。如果为 None,类似于 True,dataframe 的索引会被保存。但是,RangeIndex 不会作为值保存,而是作为元数据中的范围存储,因此不占用太多空间且速度更快。其他索引将作为列包含在文件输出中。

  • partition_cols (list, optional, default None) -- 用于对数据集进行分区的列名。列按给定顺序进行分区。如果 path 不是字符串,则必须为 None。

  • **kwargs -- 传递给 parquet 库的附加参数。

示例

>>> import maxframe.dataframe as md
>>> df = md.DataFrame(data={'col1': [1, 2], 'col2': [3, 4]})
>>> df.to_parquet('*.parquet.gzip',
...               compression='gzip').execute()
>>> md.read_parquet('*.parquet.gzip').execute()
   col1  col2
0     1     3
1     2     4
>>> import io
>>> f = io.BytesIO()
>>> df.to_parquet(f).execute()
>>> f.seek(0)
0
>>> content = f.read()