开发者社区> 问答> 正文

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

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

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

展开
收起
社区小助手 2018-12-11 16:26:16 5524 0
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
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载