前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Flink 离线处理案例

Flink 离线处理案例

作者头像
编程那点事
发布2023-02-25 16:10:20
2650
发布2023-02-25 16:10:20
举报
文章被收录于专栏:java编程那点事java编程那点事

Dataset是flink的常用程序,数据集通过source进行初始化,例如读取文件或者序列化集合,然后通过transformation(filtering、mapping、joining、grouping)将数据集转成,然后通过sink进行存储,既可以写入hdfs这种分布式文件系统,也可以打印控制台,flink可以有很多种运行方式,如local、flink集群、yarn等. scala版本

代码语言:javascript
复制
import org.apache.flink.api.scala.ExecutionEnvironment
import org.apache.flink.api.scala._

object WordCountScala{
 def main(args: Array[String]) {
   //初始化环境
   val env = ExecutionEnvironment.getExecutionEnvironment
   //从字符串中加载数据
   val text = env.fromElements(
 "Who's there?",
 "I think I hear them. Stand, ho! Who's there?")
 //分割字符串、汇总tuple、按照key进行分组、统计分组后word个数
 val counts = text.flatMap { _.toLowerCase.split("\\W+")
 .filter { _.nonEmpty } }
 .map { (_, 1) }
 .groupBy(0)
 .sum(1)
 //打印
 counts.print()
 }
}

java版本

代码语言:javascript
复制
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 WordCountJava {
 public static void main(String[] args) throws Exception {
   //构建环境
   final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
   //通过字符串构建数据集
   DataSet<String> text = env.fromElements(
           "Who's there?",
           "I think I hear them. Stand, ho! Who's there?");
   //分割字符串、按照key进行分组、统计相同的key个数
   DataSet<Tuple2<String, Integer>> wordCounts = text
           .flatMap(new LineSplitter())
           .groupBy(0)
           .sum(1);
   //打印
   wordCounts.print();
 }
 //分割字符串的方法
 public static class LineSplitter implements FlatMapFunction<String, Tuple2<String, Integer>> {
   @Override
   public void flatMap(String line, Collector<Tuple2<String, Integer>> out) {
       for (String word : line.split(" ")) {
           out.collect(new Tuple2<String, Integer>(word, 1));
       }
   }
 }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-03-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档