本文解释了如何解决一个错误发生在你读大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 ()