本文解釋了如何解決一個錯誤發生在你讀大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。例如:
- 複製文件從dbfs: / /來文件:/ /:
% fs cp dbfs: / mnt / large_file。csv文件:/ tmp / large_file.csv
- 閱讀文件熊貓API:
%的python導入大熊貓作為pd pd.read_csv(“文件:/ tmp / large_file.csv”) .head ()