java dataset flatmap_Flink 系例 之 FlatMap

FlatMap算子:将数据流一行按逻辑或规则拆分成0行或多行输出

示例环境

java.version: 1.8.x

flink.version: 1.11.1

示例数据源

FlatMap.java

import com.flink.demo.DataSource;

import org.apache.flink.api.common.functions.FlatMapFunction;

import org.apache.flink.api.common.functions.MapFunction;

import org.apache.flink.api.java.tuple.Tuple3;

import org.apache.flink.streaming.api.datastream.DataStream;

import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;

import org.apache.flink.util.Collector;

import java.util.List;

public class FlatMap

/**

* 遍历集合,打印数据流中每一条记录中的所有字段

* @param args

* @throws Exception

*/

public static void main(String[] args) throws Exception {

final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中使用Flink可以通过Flink Java API来实现流处理和批处理。Flink提供了DataStream和DataSet两种API来支持流处理和批处理。此外,Flink还提供了Table API和SQL API来支持关型查询。下面是一个简单的使用Flink Java API实现的流处理的子: ```java import org.apache.flink.streaming.api.datastream.DataStream; import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment; public class FlinkStreamingDemo { public static void main(String[] args) throws Exception { // 创建执行环境 StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); // 创建数据源 DataStream<String> text = env.socketTextStream("localhost", 9999); // 数据处理 DataStream<String> result = text.flatMap(new FlatMapFunction<String, String>() { @Override public void flatMap(String value, Collector<String> out) throws Exception { String[] words = value.split(" "); for (String word : words) { out.collect(word); } } }).keyBy(new KeySelector<String, String>() { @Override public String getKey(String value) throws Exception { return value; } }).sum(1); // 输出结果 result.print(); // 执行任务 env.execute("Flink Streaming Demo"); } } ``` 上述代码实现了一个简单的流处理任务,从socket中读取数据,对数据进行切分并计算单词出现的次数,最后将结果输出到控制台。在实际使用中,可以根据具体的需求选择不同的API来实现流处理和批处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值