Hi, I have a void function that takes a String, parse it and write it into Cassandra (Using pure java, not Flink Cassandra connector). Using Apache Flink Kafka connector, I've got some data into DataStream<String>. Now I want to apply Parse function to each message in DataStream<String>, but as the Parse function returns nothing (is void), I got the error
no instance of type variable R exists so that void conforms to R Is there any way to do such process using apache Flink? |
Hi Soheil,
Flink supports the type "java.lang.Void" which you can use in this case. Regards, Timo Am 19.04.18 um 15:16 schrieb Soheil Pourbafrani: > Hi, I have a void function that takes a String, parse it and write it > into Cassandra (Using pure java, not Flink Cassandra connector). Using > Apache Flink Kafka connector, I've got some data into > DataStream<String>. Now I want to apply Parse function to each message > in DataStream<String>, but as the Parse function returns nothing (is > void), I got the error > no instance of type variable R exists so that void conforms to R > > Is there any way to do such process using apache Flink? |
In your case a FlatMapFunction is
better suited because it allows 0, 1 or more output.
It would look like this: text.flatMap((FlatMapFunction<String, Void>) (value, out) -> parse(value)); Or with an anonymous class: text.flatMap(new FlatMapFunction<String, Void>() { @Override public void flatMap(String value, Collector<Void> out) throws Exception { parse(value); } }); Regards, Timo Am 19.04.18 um 15:26 schrieb Soheil Pourbafrani:
|
Free forum by Nabble | Edit this page |