这是什么意思 "partitioned data" - S3

what does it mean "partitioned data" - S3

我想使用 Netflix 的 outputCommitter(将 Spark 与 Amazon EMR 结合使用)。 在 README 中有 2 个选项:

  1. S3DirectoryOutputCommitter - 用于将未分区数据写入 S3 并解决冲突。
  2. S3PartitionedOutputCommitter - 用于将分区数据写入 S3 并解决冲突。

我试图理解其中的差异,但没有成功。有人可以解释什么是 s3 中的“分区数据”吗?

根据 hadoop 文档,“这个提交者是“目录”提交者的扩展,它有一个特殊的冲突解决策略,旨在支持将新数据插入到使用 Hive 的分区策略构建的目录树中的操作:不同级别的树代表不同的列。"

在 hadoop 文档中搜索完整的详细信息。

请注意,EMR 提交者不是 ASF S3A 提交者,因此请采用不同的配置选项并拥有自己的文档。但由于他们的工作是 netflix 工作的重新实现,他们应该在这里做同样的事情

我不熟悉 outputCommitter,Amazon S3 中的分区数据通常是指在目录之间拆分文件以减少需要从磁盘读取的数据量。

例如:

/data/month=1/
/data/month=2/
/data/month=3/
...

如果 Hive-type 查询是 运行 针对带有 WHERE month=1 子句的数据,那么它只需要在 month=1/ 子目录中查找,从而节省2/3 的磁盘访问。