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/