Apache spark 在Spark流中刷新RDD
我已经实现了Spark Streaming,它从Kafka接收数据。有一个RDD,它从数据库加载数据,对来自流媒体的传入数据执行操作。但是,我希望定期刷新RDD以检索数据源(数据库)中的任何更改。有没有办法刷新/重新加载数据 可以广播rdd,并使用计时器定期更新广播。可以广播rdd,并使用计时器定期更新广播。如果在转换中读取数据库,还可以将时间作为参数传递:Apache spark 在Spark流中刷新RDD,apache-spark,spark-streaming,Apache Spark,Spark Streaming,我已经实现了Spark Streaming,它从Kafka接收数据。有一个RDD,它从数据库加载数据,对来自流媒体的传入数据执行操作。但是,我希望定期刷新RDD以检索数据源(数据库)中的任何更改。有没有办法刷新/重新加载数据 可以广播rdd,并使用计时器定期更新广播。可以广播rdd,并使用计时器定期更新广播。如果在转换中读取数据库,还可以将时间作为参数传递: .transform((rdd,time)=>refreshDbTable(rdd,time)) 然后如果你想每15分钟刷新一次 def
.transform((rdd,time)=>refreshDbTable(rdd,time))
然后如果你想每15分钟刷新一次
def refreshDbTable(rdd: RDD, time: Time) = {
if (time.isMultipleOf(Minutes(15))) {
// drop the temp table
// re-register the temp table
}
}
如果在转换中读取数据库,还可以将时间作为参数传递:
.transform((rdd,time)=>refreshDbTable(rdd,time))
然后如果你想每15分钟刷新一次
def refreshDbTable(rdd: RDD, time: Time) = {
if (time.isMultipleOf(Minutes(15))) {
// drop the temp table
// re-register the temp table
}
}