我有一个Spark数据流进程,它将kafka, 的数据读入DStream。在Spark Streaming中缓存DStream
在我的管道我做两次(陆续):
DStream.foreachRDD(RDD上的转换和插入到目的地)。
(每次我做不同的处理和插入数据到不同的目的地)。
我想知道DStream.cache在从卡夫卡工作中读取数据后会如何?可以做到吗?
该过程现在是否实际上从卡夫卡读取数据两次?
请记住,这是不可能放两个foreachRDDs成一个(因为两条路径有很大的不同,也有有状态的转变存在 - 这需要对DSTREAM被appliend ...)
谢谢您的帮助
Dstream.cache将工作。它在第一次看到某个动作时缓存该流。对于DStream中的后续操作,它使用缓存。 – Knight71
@ Knight71当DStream不再需要时,我还需要设置DStream.unpersist(true),与缓存RDD时一样? –
Dstream数据将在所有操作完成后自动清除,并且基于转换由火花流确定。 – Knight71