12
我有一个火花流上下文从卡夫卡读取事件数据,间隔10秒。我想用postgres表中现有的数据来补充这个事件数据。火花流多个来源,重新加载数据帧
我可以加载Postgres的表是这样的:
val sqlContext = new SQLContext(sc)
val data = sqlContext.load("jdbc", Map(
"url" -> url,
"dbtable" -> query))
...
val broadcasted = sc.broadcast(data.collect())
后来我能过去是这样的:
val db = sc.parallelize(data.value)
val dataset = stream_data.transform{ rdd => rdd.leftOuterJoin(db)}
我想保持当前的数据流运行,并且每隔6小时仍然重新载入此表。由于目前apache的火花不支持多个运行上下文,我怎么能做到这一点?有什么解决方法吗?或者我每次需要重新加载数据时都需要重新启动服务器?这似乎是这样一个简单的用例...:/
我也在寻找答案,你有没有成功,@ user838681? –
当你重新载入postgres表时,你是否关心过去的kafka事件,或者你是否试图从postgres发生的最新重载时间加入新的kafka数据? –
@HamelKothari 无需更新或重新处理过去的卡夫卡活动。当我更新SQL表时,我只是想将它用于来自Kafka的任何未来事件。 –