Operator(操作符)
DataStream Transformations 数据流转换
Datastream -> Datasteam
Map(映射)
取一个元素并产生一个元素,是一个映射函数。下面的例子为使用Map将输入流的值加倍
dataStream.map { x => x * 2 }
FlatMap(展开)
取一个元素并产生零个,一个或多个元素。FlatMap可将英文短语拆分为单词
dataStream.flatMap { str => str.split(" ") }
Filter(过滤)
为每个元素评估一个布尔函数,并保留该函数返回true的布尔函数。 过滤出零值的过滤器,即布尔函数的返回值为true则保留
dataStream.filter { _ != 0 }
Union(联合)
两个或多个数据流的并集,创建一个包含所有流中所有元素的新流。 注意:如果将数据流与其自身合并,则在结果流中每个元素将获得两次。
dataStream.union(otherStream1, otherStream2, ...)
DataStream,DataStream → ConnectedStreams
Connect(连接)
Connect两个保留其类型的数据流,从而允许两个流之间共享状态。
someStream : DataStream[Int] = ...
otherStream : DataStream[String] = ...
val connectedStreams = someStream.connect(otherStream)
CoMap, CoFlatMap
类似于ConnectedStreams上的map和flatMap
connectedStreams.map(
(_ : Int) => true,
(_ : String) => false
)
connectedStreams.flatMap(
(_ : Int) => true,
(_ : String) => false
)
案例代码
import org.apache.flink.streaming.api.scala._
object FlinkConnectStream {