Flink入门 wordcount——Java (代码)

官网讲解连接

https://ci.apache.org/projects/flink/flink-docs-release-1.6/dev/batch/index.html#example-program

在这里插入图片描述

导入jar包

本地安装的是1.0版本的,修改成自己对应版本即可

<!--java 依赖包导入-->
<dependency>
    <groupId>org.apache.flink</groupId>
    <artifactId>flink-java</artifactId>
    <version>1.6.1</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>org.apache.flink</groupId>
    <artifactId>flink-streaming-java_2.11</artifactId>
    <version>1.6.1</version>
    <scope>provided</scope>
</dependency>	

import org.apache.flink.api.java.ExecutionEnvironment;
import org.apache.flink.api.java.operators.AggregateOperator;
import org.apache.flink.api.java.operators.DataSource;
import org.apache.flink.api.java.tuple.Tuple2;

/**
 * @program: Flink
 * @description:
 * @author: wenglei
 * @create: 2020-06-03 14:55
 **/
public class WordCount {
    public static void main(String[] args) throws Exception {
        //初始化环境
       final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
        //初始化数据
        DataSource<String> data = env.fromElements("buzhdiao, zhaoliying yangmi zhangxiulian zhangxiulian");
        //指定数据转换,自定义分割方法
        AggregateOperator<Tuple2<String, Integer>> sum = data
                .flatMap(new LineSplitter())
                .groupBy(0)       //以Tuple的第一个字段分组
                .sum(1);            //对Tuple的第二个字段求和

        //控制台数据输出
        sum.print();
    }

}
import org.apache.flink.api.common.functions.FlatMapFunction;
import org.apache.flink.api.java.tuple.Tuple2;
import org.apache.flink.util.Collector;

/**
 * @program: Flink
 * @description:
 * @author: wenglei
 * @create: 2020-06-03 15:01
 **/
public class LineSplitter implements FlatMapFunction<String, Tuple2<String, Integer>> {

    // 数据源数据处理,将文本串解析成(单词-数量)元组
    public void flatMap(String s, Collector<Tuple2<String, Integer>> collector) throws Exception {
        //对数据进行分割
        String[] split = s.split(" ");

        for (String s1 : split) {
            collector.collect(new Tuple2<String,Integer>(s1,1));
        }

    }
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值