首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过在不同线程中执行多个查询来触发数据帧缓存

通过在不同线程中执行多个查询来触发数据帧缓存
EN

Stack Overflow用户
提问于 2020-03-10 02:30:59
回答 1查看 193关注 0票数 0

我想知道spark中的数据帧缓存是否是线程安全的。在我们的一个用例中,我从一个hive-table创建一个dataframe,然后通过不同的线程在同一个dataframe上运行多个SQL。由于我们的存储和计算是解耦的,而且由于某些原因读取非常慢,我在考虑将数据帧缓存到内存中,并将缓存的数据帧用于所有查询。数据帧缓存是线程安全的吗?这样做还有其他的陷阱吗?我的计算集群中有足够的内存(磁盘和内存)来缓存表,我将在相同的数据帧上执行10+查询。

谢谢,

阿卡什

EN

回答 1

Stack Overflow用户

发布于 2020-03-10 05:49:33

Re:“我想知道spark中的数据帧缓存是否是线程安全的。”

无论何时配置executor核心,您都可以使用多个线程来处理每个executor上的数据。这意味着在普通的SPARK SQL场景中,DAG也是使用多个线程处理的。

缓存不应该对线程安全有任何影响。此外,DataFrames和RDD一样也是不可变的,因此您不会更改现有数据帧中的数据,而是生成一个新的数据帧。

因此,即使在缓存之后,当您创建多个线程以在同一数据帧上运行不同的SQL时,每个线程也会从缓存的阶段开始,并基于您的SQL计算一个新的阶段。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60606433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档