MAP
map
算子通过调用DataStream.map()
来指定。map
算子的使用将会产生一条新的数据流。它会将每一个输入的事件传送到一个用户自定义的mapper,这个mapper只返回一个输出事件,这个输出事件和输入事件的类型可能不一样。图5-1展示了一个map算子,这个map将每一个正方形转化成了圆形。
MapFunction
的类型与输入事件和输出事件的类型相关,可以通过实现MapFunction
接口来定义。接口包含map()
函数,这个函数将一个输入事件恰好转换为一个输出事件。
// T: the type of input elements
// O: the type of output elements
MapFunction[T, O]
> map(T): O
实例一:
下面的代码实现了将SensorReading中的id字段抽取出来的功能。
scala version
val readings: DataStream[SensorReading] = ...
val sensorIds: DataStream[String] = readings.map(new IdExtractor)
class IdExtractor extends MapFunction[SensorReading, String] {
override def map(r: Sen