深入研究spark与Hive的相互作用

bd1hkmkf  于 2021-05-27  发布在  Spark
关注(0)|答案(0)|浏览(247)

我试图理解spark和hive metastore之间的相互作用。我首先查看了从spark到hive metastore的调用的时间和内容。我能看到一堆 get_table 要求 spark.read.table 操作,如果表被分区 get_partitions 当Dataframe通过调用操作具体化时调用。我注意到的另一件事是spark不缓存表定义。每次在配置单元表上调用操作时,都会再次从底层元存储中读取定义和相应的分区!。考虑到spark为您提供了其他选项来进行优化,我同意这种情况,您可以持久化Dataframe。当我查看 saveAsTable 操作。有用于创建表和按预期创建分区的api调用,但除此之外,还有大约30个api调用 get_table 正在调用配置单元元存储。我觉得很奇怪,很难理解这些电话的目的。
我在寻找以下问题的答案。
为什么spark在从metastore读取表和分区信息后不缓存这些信息呢?
如此之多背后的理由是什么 get_table 在创建配置单元表时调用?
你的电话号码是多少 get_table 读或写表时所做的调用,是执行者数量的函数?
有改进的余地吗?我们是否希望通过优化对metastore的调用数量来显著提高性能?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题