java-如何 root据数据将一个数据流输出到不同的输出?


0

在Apache Flink中,我有一个元组流。让我们假设一个非常简单的Tuple1。元组的值字段中可以有任意值(例如“P1”、“P2”等)。可能值的集合是有限的,但我事先不知道完整的集合(因此可能有一个“P362”)。我想 root据元组中的值将元组写入特定的输出位置。例如,我希望有以下文件结构:

    /输出/P1

在文档中,我只找到了可能写入我事先知道的位置(例如。stream.writeCsv文件(“/output/somewhere”)),但不能让数据的内容决定数据的实际结束位置。

我在文档中读到了关于输出拆分的内容,但这似乎没有提供一种将输出重定向到不同目的地的方法(或者我只是不明白这是如何 job 的)。

这可以用flinkapi实现吗?如果可以,怎么实现?如果没有,是否有第三方图书馆可以做到这一点,或者我必须自己建立这样一个东西?

1 答案


0

可以实现自定义 sink。从以下两者之一继承:

    网址:apache.flink.streaming.api.functions函数.sink.sink函数

在程序中使用:

stream.addSink(SinkFunction<T> sinkFunction);

而不是stream.writeCsv文件(“/output/somewhere”)。


我来回答

写文章

提问题

面试题