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

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


个人主页:beixi@

本文章收录于专栏(点击传送):【大数据学习】
💓💓持续更新中,感谢各位前辈朋友们支持学习~

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

文章目录

1.环境介绍

本次用到的环境有:

**JDK1.8

Flink 1.13.0

Oracle Linux7.4

**

2.Scala交互统计:

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

bash 复制代码
start-scala-shell.sh local


2.输入脚本,求词频。

bash 复制代码
val wordcount=benv.readTextFile("file:///root/experiment/datas/wordcount.txt").flatMap(_.split("\t")).map((_,1)).groupBy(0).sum(1)
bash 复制代码
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文件,如下图:

bash 复制代码
<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. 弹出窗口,如下图:
  1. 弹出窗口中填写类名,如下图:

  2. 创建的WordCountJava类中,输入代码:

java 复制代码
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基础实操-计算单词出现次数,如果本篇文章对你有帮助记得点赞收藏+关注~

相关推荐
逸模6 小时前
告别熬夜手工整理台账,逸模智能归集实现项目数据自动化存档
大数据·运维·人工智能·笔记·其他·信息可视化·自动化
sbjdhjd6 小时前
Redis 主从复制、哨兵高可用与 Cluster 集群部署实验手册
运维·前端·redis·云原生·开源·bootstrap·html
AOwhisky7 小时前
MySQL 学习笔记(第四期):SQL 语言之多表查询
linux·运维·网络·数据库·笔记·学习·mysql
Phantom Void7 小时前
服务器处理客户端请求的设计方法
linux·运维·网络
倔强的石头1067 小时前
Fooocus开源神器+cpolarAI让绘画告别服务器依赖
运维·服务器·cpolar
wei_shuo7 小时前
服务器挂了等用户投诉才发现?我用Beszel搭了轻量监控系统,宕机第一时间通知我
运维·服务器
王码码20357 小时前
多台服务器怎么统一看状态?Beszel 轻量监控,搭起来不费事
运维·服务器·后端·安全·阿里云·接口·web
audyxiao0018 小时前
ICLR 2026论文分享 | WorldGym:用世界模型打造机器人策略评估新范式
大数据·人工智能·大模型·智能体·世界模型
Rubin智造社9 小时前
Anthropic安全白皮书2|三级成熟度模型:你的AI智能体该配哪级安全?
大数据·安全·沙箱隔离·零信任成熟度模型·三级安全框架·jit权限·不可变审计
ACP广源盛139246256739 小时前
GSV2221 显示转换芯片@ACP#赋能 RTX Spark 端侧 AI 设备,构建多屏全模态视觉交互新生态
大数据·人工智能·嵌入式硬件·gpt·spark·电脑·音视频