随笔 - 1357  文章 - 0  评论 - 1104  阅读 - 1941万

Flink batch/stream编程套路

复制代码
DataSet and DataStream 这里以WordCount为例,共同的编程套路如下所示:

1.获取执行环境(execution environment)
final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();

2.加载/创建初始数据集
// 读取输入数据
DataStream<String> text;
if (params.has("input")) {
    // 读取text文件
    text = env.readTextFile(params.get("input"));
} else {
    System.out.println("Executing WordCount example with default input data set.");
    System.out.println("Use --input to specify file input.");
    // 读取默认测试数据集
    text = env.fromElements(WordCountData.WORDS);
}

3.对数据集进行各种转换操作(生成新的数据集)
DataStream<Tuple2<String, Integer>> counts =
                    // 切分每行单词
                    text.flatMap(new Tokenizer())
                    //对每个单词分组统计词频数
                    .keyBy(0).sum(1);
                    
4.指定将计算的结果放到何处去
// 输出统计结果
if (params.has("output")) {
    //写入文件地址
    counts.writeAsText(params.get("output"));
} else {
    System.out.println("Printing result to stdout. Use --output to specify output path.");
    //数据打印控制台
    counts.print();
}

5.触发APP执行
// 执行flink 程序
env.execute("Streaming WordCount");
复制代码

 

posted on   Ruthless  阅读(963)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
历史上的今天:
2019-03-07 nginx中root和alias的区别
2014-03-07 通过helloworld来认识下backbone
2014-03-07 初识backbone.js
2013-03-07 实战2——Hadoop的日志分析
2013-03-07 实战1——Hive与JDBC示例
2013-03-07 hadoop整合纪要
2011-03-07 js获取项目根路径
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示