Java Flink:如何在使用WriteFileText(路径)写入文件时传递动态路径?

Java Flink:如何在使用WriteFileText(路径)写入文件时传递动态路径?,java,apache-flink,flink-streaming,Java,Apache Flink,Flink Streaming,假设我有一个包含String类型元素的流。我想将流中的每个元素写入某个文件夹中的单独文件。我正在使用以下设置 stream.writeAsText(path).setParallelism(1); 如何使此路径动态化?我甚至尝试将System.nanotime()添加到路径中以使其动态。但它似乎仍然不起作用,所有内容都被写入一个文件 您的问题是DataStream.writesText()一次将流的全部内容写入文件,因此您只能得到一个文件 看起来这将返回一个集合,您可以使用该集合将字符串输出为

假设我有一个包含
String
类型元素的流。我想将流中的每个元素写入某个文件夹中的单独文件。我正在使用以下设置

stream.writeAsText(path).setParallelism(1);

如何使此路径动态化?我甚至尝试将
System.nanotime()
添加到路径中以使其动态。但它似乎仍然不起作用,所有内容都被写入一个文件

您的问题是DataStream.writesText()一次将流的全部内容写入文件,因此您只能得到一个文件

看起来这将返回一个集合,您可以使用该集合将字符串输出为不同的文件

dataStream.flatMap(new FlatMapFunction<String, String>() {
@Override
public void flatMap(String value, Collector<String> out)
    throws Exception {
    for(String word: value.split(" ")){
        out.collect(word);
    }
}
});
dataStream.flatMap(新的flatMap函数(){
@凌驾
公共void平面图(字符串值,收集器输出)
抛出异常{
for(字符串字:value.split(“”){
出。收(字);
}
}
});

直接从这里的文档中获取:

这种用例在Flink中得到了自定义bucketer的明确支持,或者更新的并且更喜欢自定义BucketAssigner和RollingPolicy

请在问题中提及你是如何tried@Tarun你还需要什么信息?这都是问题。啊,我明白了。有什么方法可以达到我想要的吗?请编辑。FlatMap操作符仍然返回一个数据流,所以我看不出这有什么不同。或者你的意思是在flatMap()方法中写入单独的文件?我的意思是在方法中写入它们,我在文档中找不到任何实际的方法来迭代DataStream对象,所以我认为这是下一个最好的方法。