输出操作指定了对流数据经转化操作得到的数据所要执行的操作(例如把
结果推入外部数据库或输出到屏幕上)。与 RDD 中的惰性求值类似,如果一
个 DStream 及 其 派 生 出 的 DStream 都 没 有 被 执 行 输 出 操 作 , 那 么 这 些
DStream 就都不会被求值。如果 StreamingContext 中没有设定输出操作,整
个 context 就都不会启动。
print()
在运行流程序的驱动结点上打印DStream 中每一批次数据的最开始 10
个元素。这用于开发和调试。在 Python API 中,同样的操作叫 pprint()。
saveAsTextFiles(prefix, [suffix])
以 text 文 件 形 式 存 储 这 个DStream 的内容。每一批次的存储文
件名基于参数中的 prefix 和 suffix。” prefix-Time_IN_MS[.suffix]”.
saveAsObjectFiles(prefix, [suffix])
以 Java 对 象 序 列 化 的 方 式 将 Stream 中 的 数 据 保 存 为 SequenceFiles .
每一批次的存储文件 名 基 于 参 数 中 的 为 "prefix-TIME_IN_MS[.suffix]". Pytho n 中目前不可用。
saveAsHadoopFiles(prefix, [suffix])
将 Stream 中 的 数 据 保 存 为Hadoop files. 每一批次的存储文件名
基 于 参 数 中 的 为"prefix-TIME_IN_MS[.suffix]". Python API Python 中目前不可用。
foreachRDD(func)
这是最通用的输出操作,即将函数 func 用于产生于 stream 的每一个RDD。其中参数传入的函数 func 应该
实现将每一个 RDD 中数据推送到外部系统,如将 RDD 存入文件或者通过网络将其写入数据库。注意:函数func
在运行流应用的驱动中被执行,同时其中一般函数 RDD 操作从而强制其对于流 RDD 的运算。
往HBASE写入数据