• 【Flink、java】


    依赖 

    1. <dependency>
    2. <groupId>org.apache.flink</groupId>
    3. <artifactId>flink-streaming-java_2.11</artifactId>
    4. <version>1.14.6</version>
    5. </dependency>
    6. <dependency>
    7. <groupId>org.apache.flink</groupId>
    8. <artifactId>flink-clients</artifactId>
    9. <version>${flink.version}</version>
    10. </dependency>

     快速上手

    1.增添依赖

    2.在根目录,添加input文件

     DataSet API实现wordcount(已经不能用了)

    1. package org.example;
    2. /*
    3. * @Auther:huangzhiyang
    4. * @Date:2023/9/26
    5. * @Description:wc
    6. */
    7. import org.apache.flink.api.common.functions.FlatMapFunction;
    8. import org.apache.flink.api.java.ExecutionEnvironment;
    9. import org.apache.flink.api.java.operators.AggregateOperator;
    10. import org.apache.flink.api.java.operators.DataSource;
    11. import org.apache.flink.api.java.operators.FlatMapOperator;
    12. import org.apache.flink.api.java.operators.UnsortedGrouping;
    13. import org.apache.flink.api.java.tuple.Tuple2;
    14. import org.apache.flink.util.Collector;
    15. public class wordCountBatchDemo {
    16. public static void main(String[] args) throws Exception {
    17. // TODO: 2023/9/26 创建执行环境
    18. ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
    19. // TODO: 2023/9/26 读取数据
    20. DataSource<String> lineDS = env.readTextFile("input/word.txt");
    21. // TODO: 2023/9/26 切分转换
    22. FlatMapOperator<String, Tuple2<String, Integer>> wordAndOne = lineDS.flatMap(new FlatMapFunction>() {
    23. @Override
    24. public void flatMap(String s, Collector<Tuple2<String, Integer>> collector) throws Exception {
    25. // TODO: 2023/9/26 按照空格切分单词
    26. String[] words = s.split(" ");
    27. // TODO: 2023/9/26 将单词转为tuple2
    28. for (String word : words) {
    29. Tuple2<String, Integer> tuple2 = Tuple2.of(word, 1);
    30. // TODO: 2023/9/26 使用collector向下游发送数据
    31. collector.collect(tuple2);
    32. }
    33. }
    34. });
    35. // TODO: 2023/9/26 按照word分组
    36. UnsortedGrouping<Tuple2<String, Integer>> wordAndOneGroupBY = wordAndOne.groupBy(0);
    37. // TODO: 2023/9/26 各分组内聚合
    38. AggregateOperator<Tuple2<String, Integer>> sum = wordAndOneGroupBY.sum(1);//1是位置,表示第二个元素
    39. // TODO: 2023/9/26 输出
    40. sum.print();
    41. }
    42. }

  • 相关阅读:
    Docker Compose安装
    二叉树习题总结
    贪心——122. 买卖股票的最佳时机 II
    PostgreSQL VACUUM 之深入浅出 (二)
    5个月做视频号的心路历程
    Alibaba 针对“金九银十”推出的《Java 岗位面试清单》,全是考点
    Java 中的反射和枚举
    计算机专业毕业设计项目推荐04-物业管理系统(SpringBoot+原生Js+Mysql)
    算法刷题——爬楼梯
    Leetcode—137.只出现一次的数字II【中等】
  • 原文地址:https://blog.csdn.net/David_Hzy/article/details/133322235