Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark apachespark中的持久化GroupState_Apache Spark_Apache Spark Sql_Spark Streaming - Fatal编程技术网

Apache spark apachespark中的持久化GroupState

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并加载它呢

我使用的框架使用ApacheSpark,并使用
mapGroupsWithState

但是,它只存储在内存中,当服务器重新启动时,所有内容都将丢失。聚合的本质要求它们是长期存在的,因此我需要将它们持久化(例如,在Spark中使用HDFS实现)

我读过关于检查点的书,但从我的实验来看,检查点应用于整个数据集,数据集会被持久化,在我的例子中,数据集是临时的,它们会更新GroupState,因此持久化并加载GroupState很重要

代码如下所示(简化):

那么,如何持久化GroupState并加载它呢

val df = loadNewDataFrame(..)
df.withWatermark(..)
  .flatMap {
     ....
  }
  .groupByKey {
    _.metric.internalKey
  }
  .mapGroupsWithState(GroupStateTimeout.ProcessingTimeTimeout()) {
    updateGroupWindowState
  }
  .flatMap(x => x)