flinkMap元组到字符串

o8x7eapl  于 2021-06-25  发布在  Flink
关注(0)|答案(1)|浏览(503)

嗨,我有一些元组 Tuple2<String, Integer> 我想转换成一个字符串,然后把它发给Kafka。
我试图找出一种方法来迭代元组并从中创建一个字符串,所以如果元组中有n个元素,我想创建一个包含它们的字符串。
我试着将它平面Map,但是我为元组中的每个元素获取了新的字符串。

SingleOutputStreamOperator<String> s = t.flatMap(new FlatMapFunction<Tuple2<String, Integer>, String>() {
            @Override
            public void flatMap(Tuple2<String, Integer> stringIntegerTuple2, Collector<String> collector) throws Exception {

            collector.collect(stringIntegerTuple2.f0 + stringIntegerTuple2.f1);
            }
        });

在元组外的字符串上创建的正确方法是什么。

zfciruhq

zfciruhq1#

你只需覆盖 .toString() 方法,并使用该方法。这样地:

import org.apache.flink.api.java.tuple.Tuple3;

public class CustomTuple3 extends Tuple3 {

    @Override
    public String toString(){
        return "measurment color=" + this.f0.toString() + " color=" + this.f1.toString() + " color=" + this.f2.toString();
    }
}

所以现在只需使用customtuple3对象而不是tuple3,当您填充它并调用 .toString() 它将输出格式化的字符串。

相关问题