How to update rdd periodically in spark streaming

Viewed 814

My code is something like:

sc = SparkContext()
ssc = StreamingContext(sc, 30)

initRDD = sc.parallelize('path_to_data')
lines = ssc.socketTextStream('localhost', 9999)
res = lines.transform(lambda x: x.join(initRDD))

res.pprint()

And my question is that initRDD need to be updated every day in midnight.

I try to this way:

sc = SparkContext()
ssc = StreamingContext(sc, 30)

lines = ssc.socketTextStream('localhost', 9999)


def func(rdd):
    initRDD = rdd.context.parallelize('path_to_data')
    return rdd.join(initRDD)


res = lines.transform(func)

res.pprint()

But it seems that initRDD will be updated per 30s which same to batchDuration

Is there any good ideal

1 Answers
Related