【问题标题】:Are parquet files splittable when stored in AWS S3?存储在 AWS S3 中时,parquet 文件是否可拆分?
【发布时间】:2020-03-04 06:00:12
【问题描述】:
  • 我知道 parquet 文件如果存储在块存储中是可以拆分的。例如存储在 HDFS 上
  • 存储在 AWS s3 等对象存储中时它们是否也可拆分?
  • 这让我很困惑,因为对象存储应该是原子的。您要么访问整个文件,要么不访问文件。如果不重写整个文件,您甚至无法更改 S3 文件上的元数据。另一方面,AWS 建议在 S3 中使用可拆分文件格式来提高 Athena 和 hadoop 生态系统中其他框架的性能。

【问题讨论】:

    标签: amazon-web-services apache-spark amazon-s3 parquet amazon-athena


    【解决方案1】:

    是的,Parquet 文件是可拆分的。

    S3 支持定位读取(范围请求),可用于仅读取输入文件(对象)的选定部分。

    【讨论】:

      【解决方案2】:

      我不是 100% 确定您在这里的意思,但通常(我认为)您在分区键上有 parquet 分区并将列保存到行块中。当我在其中使用 AWS S3 时,它已保存如下:

      |-Folder
      |--Partition Keys
      |---Columns
      |----Rows_1-100.snappy.parquet
      |----Rows_101-200.snappy.parquet
      

      这会处理您提到的拆分效率。

      【讨论】:

      • 嗨,Kaspar,可拆分文件是单个文件,读者可以分小块访问,而不必阅读整个文件。这意味着例如许多程序可以读取文件的不同块并并行处理它。 Parquet 文件是可拆分文件。另一方面,使用 gzip 压缩的文件不可拆分,因为解压缩文件需要文件的全部内容。您上面描述的内容与文件是否可拆分无关。相反,只有多个文件
      • 嘿阿兰 - 感谢您的澄清。正如您可能知道的那样,对此知之甚少。我的问题是,鉴于你上面所说的,你为什么想要一个文件,而不是把它分布在多个文件中?只是好奇。
      • 不用担心 Kaspar,这篇文章有几个有趣的地方。第 4 点很好地解释了文件大小的重要性aws.amazon.com/blogs/big-data/…
      猜你喜欢
      • 2017-09-05
      • 2018-06-07
      • 2019-06-15
      • 2020-01-12
      • 1970-01-01
      • 2019-11-10
      • 2023-03-14
      • 1970-01-01
      相关资源
      最近更新 更多