gpt4 book ai didi

apache-spark - Spark 中的 Metastore 是什么?

转载 作者:行者123 更新时间:2023-12-01 05:03:44 25 4
gpt4 key购买 nike

我在 python 中使用 SparkSQL。我创建了一个分区表(大约有数百个分区),使用 hiveContext 将其存储到 Hive 内部表中。 Hive 仓库位于 S3。

当我简单地执行 "df = hiveContext.table("mytable") 时。第一次遍历所有分区需要一分钟多的时间。我以为 Metastore 存储了所有元数据。为什么 spark 仍然需要遍历每个分区分区?是否可以避免此步骤以便我的启动更快?

最佳答案

这里的关键是仅在第一次查询时加载文件元数据需要这么长时间。原因是 SparkSQL 不会将分区元数据存储在 Hive 元存储中。对于 Hive 分区表,分区信息需要存储在 Metastore 中。根据表的创建方式将决定其行为方式。从提供的信息来看,您似乎创建了一个 SparkSQL 表。

SparkSQL 存储表架构(包括分区信息)和表的根目录,但在运行查询时仍会动态发现 S3 上的每个分区目录。我的理解是,这是一种权衡,因此您无需在表更新时手动添加新分区。

关于apache-spark - Spark 中的 Metastore 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30967205/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com