当前位置: 首页 > news >正文

java编写单词数_JAVA flink小试——单词计数

本文用java来实现一个简单的fink计数单词。

本文写了两个flink版本,一个普通版本,一个lambda版本。有以下注意点:

写法差异,lambda需要调用return方法,而普通版本是不需要的。

在导包时,注意不要导成Scala中包,很多类名在flink和Scala中都有同名。会衍生出不必要的错误。比如Tuple2这个类。

在本地执行命令:

curl https://flink.apache.org/q/quickstart.sh | bash

会下载一个官网的示例,主要看中了他的pom文件。可以将他的项目导入IDEA中,编写自己的示例程序。

package org.myorg.test;

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.tuple.Tuple2;

import java.util.stream.Stream;

/**

* @author lingbao08

* @DESCRIPTION

* @create 2019-09-15 13:23

**/

public class WordCount {

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

ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();

DataSet text = env.fromElements("我是中国人,我爱中国");

//普通版本

DataSet> counts =

text.flatMap(new FlatMapFunction>() {

@Override

public void flatMap(String s, Collector> collector) throws Exception {

String[] split = s.split("");

for (String s1 : split) {

if (s1.length() > 0)

collector.collect(new Tuple2(s1, 1));

}

}

}).groupBy(0)

.sum(1);

counts.print();

}

}

lambda版本:

DataSet> counts =

text.flatMap((FlatMapFunction>) (s, collector) -> {

Stream.of(s.split("")).forEach(v -> collector.collect(new Tuple2<>(v, 1)));

}).returns(Types.TUPLE(Types.STRING, Types.INT)).groupBy(0)

.sum(1);

counts.print();


http://www.taodudu.cc/news/show-647743.html

相关文章:

  • 【physx/wasm】在physx中添加自定义接口并重新编译wasm
  • excel---常用操作
  • Lora训练Windows[笔记]
  • linux基础指令讲解(ls、pwd、cd、touch、mkdir)
  • InnoDB 事务处理机制
  • 启明云端ESP32 C3 模组WT32C3通过 MQTT 连接 AWS
  • bbs mysql_简单BBS程序(需MySQL支持)
  • java oom分析_OOM分析
  • anaconda怎么使用python包_Anaconda中python包的介绍与使用方法
  • php抓取运动步数,使用PHP抓取微博数据
  • php 网页截屏,怎么用PHP实现网页截图
  • thread php,php中关于线程thread的使用
  • cmf php,cmf公共函数解析-common.php
  • php 实现时时更新地图,PHP实现隔15分钟自动更新网站地图功能
  • php中显示不出图像,php – 无法显示图像,因为它包含错误
  • java后台日期怎么去重,JAVA后台业务实现去重
  • php stripos 返回值,php函数stripos详解
  • java中gc的认识,java JVM GC 笔记(个人对GC 或JVM 的了解)
  • java libpcap,Linux下编译安装libpcap
  • 网页实现人脸识别PHP,奇思妙想-用HTML5进行人脸识别
  • 文件包含漏洞不能包含php,ThinkPHP5漏洞分析之文件包含
  • php对应哪个oracle版本,Oracle 版本说明
  • php 主页子标题修改,关于有部分用户默认PC主页大标题标签修改无效的答疑.
  • 基于matlab的智能天线波束方向图仿真,基于MATLAB的智能天线波束方向图仿真
  • python中xlwt的局限,Python xlwt 生成Excel和设置特定单元格不可编辑
  • angularjs 导出excel php,AngularJS 导出Excel指令
  • php 连续点击事件,javascript设置连续两次点击按钮时间间隔的方法_javascript技巧...
  • oracle10g数据库热备份,Oracle10g数据库冷备份脚本文件
  • Oracle创建序列的sql语句,【Oracle学习】之 序列(Sequence)
  • cssd拉起oracle,oracle rac /etc/init.d/init.cssd startcheck
  • oracle dg状态查询,oracle dg状态检查及相关命令
  • keep alive PHP,vue中keep-alive使用方法详解
  • oracle库缓存锁,Laravel 7.10 中的数据库缓存锁定和并发限制
  • 源码时代php中级项目,PHP学科项目评比圆满结束
  • linux 进程管理 ppt,linux操作系统-进程管理和打印管理.ppt
  • linux c编程头文件,如何在Linux中找到C编程语言的头文件?