小编use*_*681的帖子

Spark流式传输多个源,重新加载数据帧

我有一个来自kafka的火花流上下文读取事件数据,间隔为10秒.我想用postgres表中的现有数据来补充这个事件数据.

我可以用以下内容加载postgres表:

val sqlContext = new SQLContext(sc)
val data = sqlContext.load("jdbc", Map(
  "url" -> url,
  "dbtable" -> query))
Run Code Online (Sandbox Code Playgroud)

...

val broadcasted = sc.broadcast(data.collect())
Run Code Online (Sandbox Code Playgroud)

后来我可以像这样穿过它:

val db = sc.parallelize(data.value)
val dataset = stream_data.transform{ rdd => rdd.leftOuterJoin(db)}
Run Code Online (Sandbox Code Playgroud)

我希望保持当前的数据流运行,并且每隔6小时仍然重新加载此表.由于此时apache spark不支持多个运行上下文,我该如何实现呢?有没有解决方法?或者每次我想重新加载数据时是否需要重新启动服务器?这似乎是一个简单的用例......:/

postgresql apache-spark spark-streaming apache-spark-sql

12
推荐指数
1
解决办法
911
查看次数