简单的flink代码案例
时间: 2023-09-02 07:07:00 浏览: 54
以下是一个简单的 Flink 代码案例,实现了一个 WordCount 程序:
```java
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 WordCount {
public static void main(String[] args) throws Exception {
final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
DataSet<String> text = env.fromElements(
"hello world",
"hello flink",
"flink is awesome",
"hello world");
DataSet<Tuple2<String, Integer>> counts = text
.flatMap(new Tokenizer())
.groupBy(0)
.sum(1);
counts.print();
}
private static class Tokenizer implements FlatMapFunction<String, Tuple2<String, Integer>> {
@Override
public void flatMap(String value, Collector<Tuple2<String, Integer>> out) {
String[] tokens = value.toLowerCase().split("\\W+");
for (String token : tokens) {
if (token.length() > 0) {
out.collect(new Tuple2<>(token, 1));
}
}
}
}
}
```
这个程序的主要步骤是:
1. 获取 Flink 执行环境。
2. 定义一个字符串数据集,包含了一些单词。
3. 使用 `flatMap()` 函数将字符串数据集转换为 Tuple2<String, Integer> 类型,其中 String 是单词,Integer 是出现次数。
4. 使用 `groupBy()` 函数按照单词进行分组。
5. 使用 `sum()` 函数对每个单词出现次数进行求和。
6. 输出每个单词出现的次数。