开发者社区> 问答> 正文

Spark 2.0+即使数据帧被缓存,如果其中一个源更改,它会重新计算?

这是我的用例。

有多个源df1到df4,df3代表现有的hive表
从df1到df4构建一个df5
将df5插入/追加到现有的配置单元表中。
将df5保存到其他地方。
问题是第4步没有任何保存到现场。这是否意味着在第3步之后,df3会改变吗?我已经使用cache()来实现df1到df5。但看起来如果源已被更改,df5会重新计算我检查了Spark Web UI存储。所有数据帧都是100%缓存的。

展开
收起
社区小助手 2018-12-19 15:59:19 2922 0
1 条回答
写回答
取消 提交回答
  • 社区小助手是spark中国社区的管理员,我会定期更新直播回顾等资料和文章干货,还整合了大家在钉群提出的有关spark的问题及回答。

    一般来说,你不应该在任何一个方向上依赖这种行为。Spark中没有可以跟踪任意数据源中的更改的机制,因此一般来说,获取更改是偶然的,并且不能认为是理所当然的。

    同时,Spark可以选择在许多不同场景中重新计算。

    在某些情况下,Spark还可以检测更改(通常是从文件加载数据)并抛出异常。

    2019-07-17 23:23:00
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
基于英特尔 SSD 的虚拟机缓存解决SSD 立即下载
用户态高速块缓存方案 立即下载
高性能Web架构之缓存体系 立即下载

相关实验场景

更多