當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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