dask 从 spark 读取镶木地板文件 | 珊瑚贝

dask read parquet file from spark


对于从 spark 写入的 parquet 文件(没有任何分区),它的目录如下所示:

1
2
3
4
5
%ls foo.parquet
part-00017-c17ab661-2564-428e-8233-e7a9951fb012-c000.gz.parquet
part-00018-c17ab661-2564-428e-8233-e7a9951fb012-c000.gz.parquet
part-00019-c17ab661-2564-428e-8233-e7a9951fb012-c000.gz.parquet
_SUCCESS

尝试通过 pandas 读取时:

1
pd.read_parquet(‘foo.parquet’)

一切正常。

但是,当使用 dask 时它会失败:

1
2
dd.read_parquet(‘foo.parquet’)
 [Errno 17] File exists: ‘foo.parquet/_SUCCESS’

我需要进行哪些更改才能使 dask 能够成功读取数据?

  • 我相信它也可以与较长的 dd.read_parquet(‘foo.parquet/*parquet’) 一起使用 fastparquet。


原来pandas使用的是pyarrow。当切换到这个后端进行 dask:

1
 dd.read_parquet(‘foo.parquet’, engine=’pyarrow’)

它就像预期的那样工作

  • 但是,即使该目录仅包含大约 20 个文件,读取 parquet 文件所需的时间也确实很慢。 Spark 的 df.show 是即时的。为什么 dask df.head() 这么慢?


来源:https://www.codenong.com/61379813/

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?