假设我有一个包含类型元素的Stream String。我想将流中的每个元素写入某个文件夹中的单独文件。我正在使用以下设置。
stream.writeAsText(path).setParallelism(1);
如何使这条路径动态化?我甚至尝试添加System.nanotime()路径以使其动态化。但它似乎仍然不起作用,所有内容都写入一个文件。
你的问题是DataStream.writeAsText()会立即将流的整个内容写入文件,因此您只能获得单个文件。
看起来这将返回一个集合,您可以使用该集合将字符串输出为不同的文件。
dataStream.flatMap(new FlatMapFunction() {
@Override
public void flatMap(String value, Collector out)
throws Exception {
for(String word: value.split(" ")){
out.collect(word);
}
}
});
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。