閱讀大型DBFS-mounted文件使用Python api

學習如何解決錯誤讀取大型DBFS-mounted文件時使用Python api。

寫的亞當Pavlacka

去年發表在:2022年5月19日

本文解釋了如何解決一個錯誤發生在你讀大DBFS-mounted文件使用本地Python api。

問題

如果你掛載一個文件夾上dbfs: / /和讀取一個文件大於2 gb在Python API和熊貓一樣,您將看到以下錯誤:

/磚/ python /地方/ lib / python2.7 /網站/熊貓/解析器。所以在pandas.parser.TextReader。__cinit__(熊貓/ parser.c: 3427)() /磚/ python /地方/ lib / python2.7 /網站/熊貓/解析器。所以在pandas.parser.TextReader。_setup_parser_source(熊貓/ parser.c: 6883) () IOError:那麼從文件初始化失敗

導致

發生錯誤,因為一個參數在Python方法讀取一個文件是一個int簽署,文件是一個int的長度,如果對象是一個文件大於2 gb,長度可以超過最大int簽署。

解決方案

將文件從dbfs: / /本地文件係統(文件:/ /)。然後讀取使用Python API。例如:

  1. 複製文件從dbfs: / /文件:/ /:
    % fs cp dbfs: / mnt / large_file。csv文件:/ tmp / large_file.csv
  2. 閱讀文件熊貓API:
    %的python導入大熊貓作為pd pd.read_csv(“文件:/ tmp / large_file.csv”) .head ()