0
我正在进行spark-streaming。动态切换Spark Streaming中的查询
如果我想为每10次查询执行更改一次输入查询,或者我想每10分钟切换一次查询,那么可能吗?正如我在创建流式上下文时知道的那样,我无法改变其计算逻辑。我想知道,有没有可能切换我的SQL查询动态或不? 感谢您的善意帮助。
我正在进行spark-streaming。动态切换Spark Streaming中的查询
如果我想为每10次查询执行更改一次输入查询,或者我想每10分钟切换一次查询,那么可能吗?正如我在创建流式上下文时知道的那样,我无法改变其计算逻辑。我想知道,有没有可能切换我的SQL查询动态或不? 感谢您的善意帮助。
在这里,我举个例子,从火花页, VAL词:DSTREAM [字符串] = ...
words.foreachRDD { rdd =>
val spark = SparkSession.builder.config(rdd.sparkContext.getConf).getOrCreate()
import spark.implicits._
val wordsDataFrame = rdd.toDF("word")
wordsDataFrame.createOrReplaceTempView("words")
val wordCountsDataFrame =
spark.sql(dynamicQuery)
wordCountsDataFrame.show()
}
欲动态切换该查询,例如我切换到查询执行的每个触发器的不同查询。我尝试下面的方法,它是工作正常,但我不明白为什么:
if(counter % 2 == 0) val wordCountsDataFrame = spark.sql(dynamicQuery_1)
else spark.sql(dynamicQuery_2)
计数器的增量查询执行。
我的问题是: 1)有没有更好的实现方法? 2)据我所知,一旦创建了Spark Streaming上下文,我们就不能改变它的计算逻辑。这是否意味着DAGScheduler和TaskScheduler可以动态管理工作流?
你能提供一个你想要做什么的例子吗?目前,这个问题有一次近距离投票,并可能在未来关闭。此外,它将大大提高获得答案的机会。 – Alexei
感谢您的评论,我添加了下面的示例。 –