【问题标题】:dask read parquet file from sparkdask 从 spark 读取镶木地板文件
【发布时间】:2020-04-23 05:17:05
【问题描述】:

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

%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 阅读时:

pd.read_parquet('foo.parquet')

一切正常。

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

dd.read_parquet('foo.parquet')
 [Errno 17] File exists: 'foo.parquet/_SUCCESS'

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

【问题讨论】:

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

标签: apache-spark dask parquet dask-distributed


【解决方案1】:

原来 pandas 使用的是pyarrow。切换到此后端进行 dask 时:

 dd.read_parquet('foo.parquet', engine='pyarrow')

效果和预期一样

【讨论】:

  • 然而,即使该目录仅包含大约 20 个文件,读取 parquet 文件所需的时间也确实很慢。 Spark 的 df.show 是即时的。为什么 dask df.head() 这么慢?
猜你喜欢
  • 1970-01-01
  • 2020-07-27
  • 2017-01-22
  • 1970-01-01
  • 2021-08-27
  • 2019-01-09
  • 1970-01-01
  • 2020-02-01
  • 1970-01-01
相关资源
最近更新 更多