Flink的流處理--KeyBy


邏輯上將一個流分成不相交的分區,每個分區包含相同鍵的元素。在內部,這是通過散列分區來實現的

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()
  }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM