mapwithstate/updatestatebykey是否已缓存?

mklgxw1f  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(259)

假设我有一份申请
从Kafka创建一个新的流
进行一些转换
使用 mapWithState / updateStateByKey 保存状态。
对来自状态的流执行更多的转换。
做一些动作1和动作2。
注意:我还没有使用任何缓存。
我的问题是,
步骤2中的转换是否会执行两次(action1和action2各一次)?对我来说,似乎只执行了一次!!! mapWithState / updateStateByKey 返回 dStream ,但它会自动进行缓存/存储吗?
有没有保证,之前的转变 mapWithState / updateStateByKey 只应用一次而不重新计算?我的意思是,如果国家仍然包含30天前获得的数据,如果没有找到预先计算的结果,它会重新计算吗?

ifsvaxew

ifsvaxew1#

步骤2中的转换是否会执行两次(action1和action2各一次)?对我来说,似乎只执行了一次
这真的取决于我们在谈论什么样的转变。如果一个图有两个分支,每个分支并行地执行一些计算,那么它应该可以工作。
mapwithstate/updatestatebykey返回dstream,但它是否自动进行一些缓存/存储?
这些转换的全部目的是在迭代之间保持状态,这就是它们所做的。 mapWithState 有明确的 State[S] 添加/更新/删除自己的对象。
有没有保证,mapwithstate/updatestatebykey之前的转换只应用一次而不重新计算?我的意思是,如果国家仍然包含30天前获得的数据,如果没有找到预先计算的结果,它会重新计算吗
mapWithState 以及 updateStateByKey 他们是无国籍的。如果 RDD 作为一个整体,如果缺少一段必要的数据,它可以请求重新计算这部分数据 RDD 它不见了。如果你是这个意思。

相关问题