引入依赖
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-java</artifactId>
<version>1.10.1</version>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-streaming-java_2.12</artifactId>
<version>1.10.1</version>
</dependency>
批处理代码(未知原因暂时数据没有打印 后续知道了来补充)
package com.robert.flink.wcTest;
import org.apache.flink.api.common.functions.FlatMapFunction;
import org.apache.flink.api.java.DataSet;
import org.apache.flink.api.java.ExecutionEnvironment;
import org.apache.flink.api.java.tuple.Tuple2;
import org.apache.flink.util.Collector;
public class FlinkBatchWordCountPrintTest {
public static void main(String[] args) throws Exception {
//get runtime environment
ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
//path of file for test
String filePath = "D:\\word.txt";
//read content into dataset from file
DataSet<String> stringDataSet = env.readTextFile(filePath);
DataSet<Tuple2<String, Integer>> sum = stringDataSet.flatMap(new FlatMapFunction<String, Tuple2<String,Integer>>() {
@Override
public void flatMap(String value, Collector<Tuple2<String, Integer>> collector) {
String[] words = value.split("");
for (String word : words) {
collector.collect(new Tuple2<>(word, 1));
}
}
}).groupBy(0).sum(1);
//print content of dataset
sum.print();
}
}
流处理代码(未知原因暂时数据没有打印 后续知道了来补充)
package com.robert.flink.wcTest;
import org.apache.flink.api.common.functions.FlatMapFunction;
import org.apache.flink.api.common.typeinfo.Types;
import org.apache.flink.api.java.DataSet;
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.operators.FlatMapOperator;
import org.apache.flink.api.java.tuple.Tuple2;
import org.apache.flink.streaming.api.datastream.DataStream;
import org.apache.flink.streaming.api.datastream.SingleOutputStreamOperator;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import org.apache.flink.util.Collector;
public class FlinStreamWordCountPrintTest {
public static void main(String[] args) throws Exception {
//get runtime environment
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
//path of file for test
String filePath = "C:\\study\\咕泡\\mybatis\\06.MyBatis原理篇\\01.MyBatis应用分析与最佳实践\\课堂源码\\MyBatis第一天代码\\flink\\src\\main\\resources\\static\\word.txt";
//read content into dataset from file
DataStream<String> stringDataSet = env.readTextFile(filePath);
//count word appeared times
DataStream<Tuple2<String, Integer>> sum = stringDataSet.flatMap((FlatMapFunction<String, Tuple2<String, Integer>>) (value, collector) -> {
String[] words = value.split(" ");
for (String word : words) {
collector.collect(new Tuple2<>(word, 1));
}
}).returns(Types.TUPLE(Types.STRING, Types.INT)).keyBy(0).sum(1);
//print content of dataset
sum.print();
env.execute();
}
}