Flink从Socket数据流中读取数据
yum install -y nc
nc -l 8888
package com.day
import org.apache.flink.api.common.functions.MapFunction
import org.apache.flink.streaming.api.scala._
object SourceSocket {
case class User(id: String, name: String, sex:String, age:Int, ts:Long)
def main(args: Array[String]): Unit = {
val env = StreamExecutionEnvironment.getExecutionEnvironment
val dataStream = env.socketTextStream("localhost", 8888, '\n')
.map(new UserMapFunction())
dataStream.print()
env.execute("SourceSocket Job")
}
class UserMapFunction extends MapFunction[String, User] {
override def map(t: String): User = {
val arr = t.split(",")
User(arr(0), arr(1), arr(2), arr(3).toInt, arr(4).toLong)
}
}
}
- 运行结果