假设我在flink Datastream(即Datastream [Event])中具有以下类:
class Event( val id: Int,
val Type: String,
extraArgs: Map[String, Any]) extends Serializable {
...
}
要在flink运算符之间序列化它,我只需要此类扩展上述的Serializable类即可。但是,如果我也想在FlinkKafka生产者/消费者之间进行读写操作。
例如,对于FlinkKafkaConsumer,似乎我必须编写自己的org.apache.flink.api.common.serialization.DeserializationSchema,并且最重要的是重写T deserialize(byte [] message)函数。与SerializationSchema相同(即,覆盖serialize方法)。
有人可以提供Java或Scala的实现吗?最好是斋戒。
问题是我拥有csv格式的数据。当我解析它(例如,使用split(delim),新Map(...)等)以在反序列化函数中创建一个Event并形成Datastream [Event]时,它花费了很多时间,这使以下运算符成为瓶颈。因此,我认为,如果我已经在kafka主题中将数据作为序列化POJO进行了处理,则会花费更少的时间(我不介意此预处理)。