Spark 2.0+即使数据帧已缓存,如果其源之一发生更改,它也会重新计算?

ali*_*uya 5 caching scala dataframe apache-spark

这是我的用例。

  1. 有多个来源df1至df4,df3代表现有的配置单元表
  2. 从df1到df4建立一个df5
  3. 将df5插入/附加到现有的配置单元表中。
  4. 将df5保存到其他位置。

问题在于第4步不会节省任何费用。这是否意味着在第3步之后,df3会发生变化?我已经对df1至df5使用cache()了。但是,如果我检查了Spark Web UI存储,如果源已更改,则df5似乎将重新计算。所有数据帧都是100%缓存的。