用法:
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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。