我正在编写一个用于数据摄取的程序。从Kafka读取到DStream,将Dstrem分为3个流,并在每个流上执行Actions:
val stream = createSparkStream(Globals.configs, ssc)
val s1 = stream.filter(<predicat1>)
val s2 = stream.filter(<predicat2>)
val s3 = stream.filter(<predicat3>)
//I'm looking for something like:
s1.forEachRddAsync(...
s2.forEachRddAsync(...
s3.forEachRddAsync(...
如果有可能在整个DStream而非RDD上触发异步提交。
答案 0 :(得分:0)
DStream
操作方法虽然确实会阻塞,但不会处理数据。这些仅将DStream
注册为输出流。
StreamingContext
启动后,将根据可用资源安排处理,如果允许,则进行处理而不会互相限制。