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()