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


Python dask.dataframe.read_table用法及代碼示例


用法:

dask.dataframe.read_table(urlpath, blocksize='default', lineterminator=None, compression='infer', sample=256000, sample_rows=10, enforce=False, assume_missing=False, storage_options=None, include_path_column=False, **kwargs)

將分隔文件讀入 Dask.DataFrame

這通過以下方式並行化 pandas.read_table() 函數:

  • 它支持使用 globstrings 一次加載多個文件:

    >>> df = dd.read_table('myfiles.*.csv')
  • 在某些情況下,它可以分解大文件:

    >>> df = dd.read_table('largefile.csv', blocksize=25e6)  # 25MB chunks
  • 它可以通過提供 URL 從外部資源(例如 S3、HDFS)讀取 CSV 文件:

    >>> df = dd.read_table('s3://bucket/myfiles.*.csv')  
    >>> df = dd.read_table('hdfs:///myfiles.*.csv')  
    >>> df = dd.read_table('hdfs://namenode.example.com/myfiles.*.csv')

在內部 dd.read_table 使用 pandas.read_table() 並支持許多具有相同性能保證的相同關鍵字參數。有關可用關鍵字參數的更多信息,請參閱pandas.read_table() 的文檔字符串。

參數

urlpath字符串或列表

絕對或相對文件路徑。使用 s3:// 之類的協議作為前綴,以從替代文件係統中讀取。要從多個文件中讀取,您可以傳遞一個 globstring 或路徑列表,但需要注意的是它們都必須具有相同的協議。

blocksizestr,int 或 None,可選

分割較大文件的字節數。默認值是根據可用物理內存和內核數計算的,最大為 64MB。可以是 64000000 之類的數字或 "64MB" 之類的字符串。如果 None ,則每個文件使用一個塊。

sample整數,可選

確定 dtypes 時使用的字節數

assume_missing布爾型,可選

如果為 True,則假定 dtype 中未指定的所有整數列都包含缺失值,並轉換為浮點數。默認為假。

storage_options字典,可選

對特定存儲連接有意義的額外選項,例如主機、端口、用戶名、密碼等

include_path_columnbool 或 str,可選

是否包含每個特定文件的路徑。如果為 True,則會將一個新列添加到名為 path 的 DataFrame 中。如果是 str,則設置新的列名。默認為假。

**kwargs

額外的關鍵字參數轉發到 pandas.read_table()

注意

Dask 數據幀嘗試通過從文件開頭(或者如果是 glob,則從第一個文件)讀取樣本來推斷每列的 dtype。通常這工作正常,但如果 dtype 稍後在文件(或其他文件)中不同,這可能會導致問題。例如,如果樣本中的所有行都有整數 dtype,但後來有 NaN ,那麽這將在計算時出錯。要解決此問題,您有幾個選擇:

  • 使用 dtype 關鍵字為有問題的列提供明確的 dtypes。這是推薦的解決方案。
  • 使用 assume_missing 關鍵字假設所有推斷為整數的列都包含缺失值,並將它們轉換為浮點數。
  • 使用sample 關鍵字增加樣本的大小。

還應注意,如果分隔文件包含包含行終止符的帶引號的字符串,則此函數可能會失敗。要解決此問題,您可以指定blocksize=None 不將文件拆分為多個分區,但會降低並行度。

相關用法


注:本文由純淨天空篩選整理自dask.org大神的英文原創作品 dask.dataframe.read_table。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。