Apache spark apachespark中的持久化GroupState
我使用的框架使用ApacheSpark,并使用Apache spark apachespark中的持久化GroupState,apache-spark,apache-spark-sql,spark-streaming,Apache Spark,Apache Spark Sql,Spark Streaming,我使用的框架使用ApacheSpark,并使用mapGroupsWithState 但是,它只存储在内存中,当服务器重新启动时,所有内容都将丢失。聚合的本质要求它们是长期存在的,因此我需要将它们持久化(例如,在Spark中使用HDFS实现) 我读过关于检查点的书,但从我的实验来看,检查点应用于整个数据集,数据集会被持久化,在我的例子中,数据集是临时的,它们会更新GroupState,因此持久化并加载GroupState很重要 代码如下所示(简化): 那么,如何持久化GroupState并加载它呢
mapGroupsWithState
但是,它只存储在内存中,当服务器重新启动时,所有内容都将丢失。聚合的本质要求它们是长期存在的,因此我需要将它们持久化(例如,在Spark中使用HDFS实现)
我读过关于检查点的书,但从我的实验来看,检查点应用于整个数据集,数据集会被持久化,在我的例子中,数据集是临时的,它们会更新GroupState,因此持久化并加载GroupState很重要
代码如下所示(简化):
那么,如何持久化GroupState并加载它呢
val df = loadNewDataFrame(..)
df.withWatermark(..)
.flatMap {
....
}
.groupByKey {
_.metric.internalKey
}
.mapGroupsWithState(GroupStateTimeout.ProcessingTimeTimeout()) {
updateGroupWindowState
}
.flatMap(x => x)