【问题标题】:Generating parquet files - differences between R and Python生成镶木地板文件 - R 和 Python 之间的差异
【发布时间】:2018-01-07 00:32:16
【问题描述】:

我们在Dask(Python)和Drill(R使用Sergeant数据包)中生成了一个parquet文件。我们注意到了一些问题:

  1. Dask 的格式(即fastparquet)有一个_metadata 和一个_common_metadata 文件,而R \ Drill 中的parquet 文件没有这些文件,而是有parquet.crc 文件(可以删除)。这些parquet 实现之间有什么区别?

【问题讨论】:

  • 我知道parquet versions有各种不同,但很难理解其中的区别
  • 您应该将这三个问题作为单独的问题发布在 Stack Overflow 上。将多个作为单个实例发布是很难回答和集成到 SO UI 中的。
  • 感谢输入 - 会这样做

标签: r parquet dask apache-drill fastparquet


【解决方案1】:

(只回答1),请分开发帖,方便回答)

_metadata_common_metadata 是 Parquet 数据集不需要的辅助文件,Spark/Dask/Hive/... 使用这些辅助文件来推断数据集的所有 Parquet 文件的元数据,而不需要读取所有文件的页脚。与此相反,Apache Drill 在每个文件夹中(按需)生成一个类似的文件,其中包含所有 Parquet 文件的所有页脚。仅在对数据集的第一次查询时读取所有文件,后续查询将仅读取缓存所有页脚的文件。

使用_metadata_common_metadata 的工具应该能够利用它们来获得更快的执行时间,而不是依赖它们进行操作。如果它们不存在,则查询引擎只需要读取所有页脚。

【讨论】:

  • 非常正确。此外,fastparquet(dask 将用于创建文件的库)也可以读取没有_metadata 的 parquet 数据文件列表,但最初加载元数据会更慢。 Spark 曾经制作这些文件,但现在不再制作了,我相信 hive 仍然制作。
猜你喜欢
  • 2018-01-08
  • 2017-12-27
  • 1970-01-01
  • 2019-02-25
  • 1970-01-01
  • 2016-01-18
  • 2019-09-23
  • 2018-07-01
  • 1970-01-01
相关资源
最近更新 更多