import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import org.apache.flink.streaming.api.datastream.DataStreamSource;
import org.apache.flink.api.common.typeinfo.Types;
import org.apache.flink.api.java.tuple.Tuple2;
import org.apache.flink.streaming.api.datastream.KeyedStream;
import org.apache.flink.streaming.api.datastream.SingleOutputStreamOperator;
import org.apache.flink.util.Collector;
pblic class TestFlink(){
public static void main(String[] args){
//创建流的执行环境
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
// 批处理
DataSet<String> linesDataStreamSource = env.readTextFile("src/main/resources/hello.txt");
//转换算子
SingleOutputStreamOperator<Tuple2<String, Long>> wordAndOneTuple= linesDataStreamSource .flatMap((String line, Collector<Tuple2<String, Long>> collector) -> {
String[] words = line.split(" ");
for (String word : words) {
collector.collect(Tuple2.of(word, 1L));
}
}).returns(Types.TUPLE(Types.STRING, Types.LONG));
//分组
KeyedStream<Tuple2<String, Long>, String> keyedStream = wordAndOneTuple.keyBy(data -> data.f0);
//求和
SingleOutputStreamOperator<Tuple2<String, Long>> sum = wordAndOneTuple.sum(1);
}
}