这是我的用例。
有多个源df1到df4,df3代表现有的hive表
从df1到df4构建一个df5
将df5插入/追加到现有的配置单元表中。
将df5保存到其他地方。
问题是第4步没有任何保存到现场。这是否意味着在第3步之后,df3会改变吗?我已经使用cache()来实现df1到df5。但看起来如果源已被更改,df5会重新计算我检查了Spark Web UI存储。所有数据帧都是100%缓存的。
一般来说,你不应该在任何一个方向上依赖这种行为。Spark中没有可以跟踪任意数据源中的更改的机制,因此一般来说,获取更改是偶然的,并且不能认为是理所当然的。
同时,Spark可以选择在许多不同场景中重新计算。
在某些情况下,Spark还可以检测更改(通常是从文件加载数据)并抛出异常。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。