邏輯上將一個流分成不相交的分區,每個分區包含相同鍵的元素。在內部,這是通過散列分區來實現的
object Keyby { def main(args: Array[String]): Unit = { val env: StreamExecutionEnvironment = StreamExecutionEnvironment.getExecutionEnvironment env.setParallelism(3) val textStream: DataStream[String] = env.socketTextStream("localhost" , 12345) val flatMap_data: DataStream[String] = textStream.flatMap(line => line.split("\t")) val map_data: DataStream[(String, Int)] = flatMap_data.map(line => (line , 1)) //TODO 邏輯上將一個流分成不相交的分區,每個分區包含相同鍵的元素。在內部,這是通過散列分區來實現的 val keyByData: KeyedStream[(String, Int), String] = map_data.keyBy(line => line._1) keyByData.writeAsText("keyByData") env.execute() } }