Flink基础实操-计算单词出现次数

🥇🥇【大数据学习记录篇】-持续更新中~🥇🥇


个人主页:beixi@
本文章收录于专栏(点击传送):【大数据学习】

💓💓持续更新中,感谢各位前辈朋友们支持学习~

上一篇文章写到了Flink环境搭建,这篇文章接着上篇文章延伸Flink的使用-计算单词出现次数,如果Flink境没有搭建的小伙伴们可以参考我上一篇文章:大数据组件-Flink环境搭建
在这里插入图片描述

文章目录

    • 1.环境介绍
    • 2.Scala交互统计:
    • 3.JAVA工程统计

1.环境介绍

本次用到的环境有:
**JDK1.8
Flink 1.13.0
Oracle Linux7.4
**

2.Scala交互统计:

1.启动flink进入 scala 交互模式。

start-scala-shell.sh local

在这里插入图片描述
在这里插入图片描述

2.输入脚本,求词频。

val wordcount=benv.readTextFile(“file:///root/experiment/datas/wordcount.txt”).flatMap(_.split("\t")).map((_,1)).groupBy(0).sum(1)

在这里插入图片描述

wordcount.print

在这里插入图片描述

3.JAVA工程统计

  1. 打开IDEA集成开发工具:
    在这里插入图片描述

  2. 选择 Create New Project菜单项,创建一个新的项目工程,在新的项目工程中选择窗口左侧的Maven菜单项,如图:
    在这里插入图片描述

  3. 点击Next按钮,如下图:
    在这里插入图片描述

  4. 输入框GroupId中填写experiment, 输入框ArtifactId中填写project,如下图:
    在这里插入图片描述

  5. 点击Next按钮,如下图:
    在这里插入图片描述

  6. 点击Finish按钮,如下图:
    在这里插入图片描述

  7. 点击提示窗口中的close按钮,如下图:
    在这里插入图片描述

  8. 在右下角弹出的对话框中,选择Enable Auto-Import(如未弹出该对话框请忽略此步骤)
    在这里插入图片描述

  9. 更改pom.xml文件,如下图:
    在这里插入图片描述

<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<encoding>UTF-8</encoding>
<scala.binary.version>2.11</scala.binary.version>
<flink.version>1.13.0</flink.version>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-java</artifactId>
<version>${flink.version}</version>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-clients_${scala.binary.version}</artifactId>
<version>${flink.version}</version>
</dependency>
</dependencies>
  1. 鼠标点击项目中Java文件夹,单击右键选择New,子菜单中选择Package,如下图所示:
    在这里插入图片描述
  2. 弹出对话框,如下图:
    在这里插入图片描述
  3. 窗口输入框中填写创建的包名flink,如下图:
    在这里插入图片描述
  4. 点击按钮OK,如下图:
    在这里插入图片描述
  5. 鼠标点击包flink,单击右键选择New,子菜单中选择java Class,如下图所示:
    在这里插入图片描述
  6. 弹出窗口,如下图:

在这里插入图片描述
16. 弹出窗口中填写类名,如下图:
在这里插入图片描述
17. 创建的WordCountJava类中,输入代码:

package flink;
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 {
// 创建Flink运行的上下文环境
final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
// 创建DataSet,这里我们的输入是一行一行的文本
DataSet<String> text = env.fromElements(Flink Spark Storm,Flink Flink Flink,Spark Spark Spark,Storm Storm Storm);
// 通过Flink内置的转换函数进行计算
DataSet<Tuple2<String, Integer>> counts =
text.flatMap(new LineSplitter())
.groupBy(0)
.sum(1);
//结果打印
counts.printToErr();
}
public static final class LineSplitter 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<String, Integer>(token, 1));
}
}
}
}
}
  1. 代码中点击鼠标右键选择Run运行程序
    在这里插入图片描述

  2. 执行结果如下图

在这里插入图片描述

至此,Flink基础实操-计算单词出现次数,如果本篇文章对你有帮助记得点赞收藏+关注~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/98079.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用Qt自制一个小闹钟

小闹钟 功能 当按下启动按钮时&#xff0c;停止按钮可用&#xff0c;启动按钮不可用&#xff0c;闹钟无法设置&#xff0c;无法输入自定义内容 当按下停止按钮时&#xff0c;暂停播报&#xff0c;启动按钮可用&#xff0c;闹钟可以设置&#xff0c;可以输入自定义内容 .pro文…

Weblogic SSRF【漏洞复现】

文章目录 漏洞测试注入HTTP头&#xff0c;利用Redis反弹shell redis不能启动问题解决 Path : vulhub/weblogic/ssrf 编译及启动测试环境 docker compose up -dWeblogic中存在一个SSRF漏洞&#xff0c;利用该漏洞可以发送任意HTTP请求&#xff0c;进而攻击内网中redis、fastcgi…

企业架构LNMP学习笔记12

1、Server配置&#xff1a; Server虚拟主机的配置&#xff1a; 在实际生产业务环境中&#xff0c;一台web服务器&#xff0c;需要使用多个网站部署。搭建vhost虚拟主机实现不同域名&#xff0c;解析绑定到不同的目录。 #基于http的web服务 server{#监听端口listen 80#配置虚…

微服务[Nacos]

CAP 1&#xff09;一致性(Consistency) (所有节点在同一时间具有相同的数据) 2&#xff09;可用性(Availability)(保证每个请求不管成功或者失败都有响应) 3&#xff09;分区容错(Partition tolerance)(系统中任意信息的丢失或失败不会影响系统的继续运作) 一、虚拟机镜像准备 …

vue3中TCplayer应用

环境win10:vitevue3elementUI 1 安装 npm install tcplayer.js2 使用 <template><div><video id"player-container-id" width"414" height"270" preload"auto" playsinline webkit-playsinline></video>&l…

Excel·VBA二维数组组合函数的应用实例

看到一个问题《关于#穷举#的问题&#xff0c;如何解决&#xff1f;(语言-开发语言)》&#xff0c;对同一个数据存在“是/否”2种状态&#xff0c;判断其是否参与计算&#xff0c;并输出一系列数据的“是/否”状态的结果 目录 方法1&#xff1a;二维数组组合函数结果 方法2&am…

JVM垃圾回收算法和CMS垃圾收集器

目录 判断一个对象是否死亡&#xff1f; 1、引用计数法 2、可达性分析算法 三色标记 垃圾收集算法 1、分代收集理论 2、垃圾回收算法 标记-清除 标记-复制 标记-整理 CMS&#xff08;Concurrent Mark Sweep&#xff09;收集器 CMS垃圾收集器步骤 CMS垃圾收集器优…

科创板50ETF期权交易:详细规则、费用、保证金和开户攻略

科创板50ETF期权是指以科创板50ETF为标的资产的期权合约。科创板50ETF是由交易所推出的一种交易型开放式指数基金&#xff08;ETF&#xff09;&#xff0c;旨在跟踪科创板50指数的表现&#xff0c;下文介绍科创板50ETF期权交易&#xff1a;详细规则、费用、保证金和开户攻略&am…

ChatGPT AIGC 完成动态堆积面积图实例

先使用ChatGPT AIGC描述一下堆积面积图的功能与作用。 接下来一起看一下ChatGPT做出的动态可视化效果图: 这样的动态图案例代码使用ChatGPT AIGC完成。 将完整代码复制如下: <!DOCTYPE html> <html> <head><meta charset="utf-8"><tit…

jdk17下netty导致堆内存疯涨原因排查 | 京东云技术团队

背景&#xff1a; 介绍 天网风控灵玑系统是基于内存计算实现的高吞吐低延迟在线计算服务&#xff0c;提供滑动或滚动窗口内的count、distinctCout、max、min、avg、sum、std及区间分布类的在线统计计算服务。客户端和服务端底层通过netty直接进行tcp通信&#xff0c;且服务端…

Medium: Where to Define Qualified users in A/B testing?

1. Common AB Testing Setup Issue (Framework) 局限性: unqualified users will also be considered and mess up experimentation results.

Mybatis 插入、修改、删除

前面几篇我们介绍了使用Mybatis查询数据&#xff0c;并且也了解了如何在Mybatis中使用JDK的日志系统打印日志&#xff1b;本篇我们继续介绍如何使用Mybatis完成数据的插入、修改和删除。 如果您对查询数据和Mybatis集成JDK日志系统不太了解&#xff0c;建议您先进行了解后再阅…