Apache spark 如何在spark structured streaming 2.4.4中缓存/持久化数据集
我想在一个计算的数据集上写三个单独的输出,为此我必须缓存/持久化我的第一个数据集,否则它将计算第一个数据集三次,这会增加我的计算时间 e、 g 现在我想过滤我的第三个数据集,并以不同的逻辑为三种不同的条件输出过滤后的数据集Apache spark 如何在spark structured streaming 2.4.4中缓存/持久化数据集,apache-spark,spark-streaming,spark-structured-streaming,apache-spark-dataset,Apache Spark,Spark Streaming,Spark Structured Streaming,Apache Spark Dataset,我想在一个计算的数据集上写三个单独的输出,为此我必须缓存/持久化我的第一个数据集,否则它将计算第一个数据集三次,这会增加我的计算时间 e、 g 现在我想过滤我的第三个数据集,并以不同的逻辑为三种不同的条件输出过滤后的数据集 ThirdDataset.filter(**Condition1**).writeStream().foreach(**SOMECALCULATIONS1**).outputMode(OutputMode.Append()).trigger(Trigger.Processin
ThirdDataset.filter(**Condition1**).writeStream().foreach(**SOMECALCULATIONS1**).outputMode(OutputMode.Append()).trigger(Trigger.ProcessingTime(600000)).start();
ThirdDataset.filter(**Condition2**).writeStream().foreach(**SOMECALCULATIONS2**).outputMode(OutputMode.Append()).trigger(Trigger.ProcessingTime(600000)).start();
ThirdDataset.filter(**Condition3**).writeStream().foreach(**SOMECALCULATIONS3**).outputMode(OutputMode.Append()).trigger(Trigger.ProcessingTime(600000)).start();
现在,对于正在计算的每个writestream ThirdDataset,如果缓存ThirdDataset,它将不会计算三次
但是当我执行ThirdDataset.cache()
时,它会提示我以下错误:
线程“main”org.apache.spark.sql.AnalysisException中的异常:
使用流媒体源的查询必须使用
writeStream.start()
谁能给我推荐一下。缓存对于流式数据集没有意义 您可能需要改变方法 差不多
ThirdDataset.writeStream().foreach(**SOMECALCULATIONS BASED ON CONDITION**).outputMode(OutputMode.Append()).trigger(Trigger.ProcessingTime(600000)).start();
ThirdDataset.writeStream().foreach(**SOMECALCULATIONS BASED ON CONDITION**).outputMode(OutputMode.Append()).trigger(Trigger.ProcessingTime(600000)).start();