开发者社区 问答 正文

如何使用writeFileAsText(path)写入文件时传递动态路径?

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

stream.writeAsText(path).setParallelism(1);
如何使这条路径动态化?我甚至尝试添加System.nanotime()路径以使其动态化。但它似乎仍然不起作用,所有内容都写入一个文件。

展开
收起
社区小助手 2018-12-11 16:26:16 5596 分享 版权
1 条回答
写回答
取消 提交回答
  • 社区小助手是spark中国社区的管理员,我会定期更新直播回顾等资料和文章干货,还整合了大家在钉群提出的有关spark的问题及回答。

    你的问题是DataStream.writeAsText()会立即将流的整个内容写入文件,因此您只能获得单个文件。

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

    dataStream.flatMap(new FlatMapFunction() {
    @Override
    public void flatMap(String value, Collector out)

    throws Exception {
    for(String word: value.split(" ")){
        out.collect(word);
    }

    }
    });

    2019-07-17 23:19:52
    赞同 展开评论
问答地址: