10.4 输出操作

输出操作指定了对流数据经转化操作得到的数据所要执行的操作(例如把结果推入外部数据库或输出到屏幕上)。

与 RDD 中的惰性求值类似,如果一个 DStream 及其派生出的 DStream 都没有被执行输出操作,那么这些 DStream 就都不会被求值。
如果 StreamingContext 中没有设定输出操作,整个 context 就都不会启动。

在 Scala 中使用 foreachRDD() 将数据存储到外部系统中:

ipAddressRequestCount.foreachRDD { rdd =>
    rdd.foreachPartition { partition =>
        // 打开到存储系统的连接(比如一个数据库的连接)
        partition.foreach { item =>
            // 使用连接把item存到系统中
        }
        // 关闭连接
    }
}