Spark-Streaming

WordCount案例

添加依赖

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<parent>

<artifactId>Sparkes</artifactId>

<groupId>org.example</groupId>

<version>1.0-SNAPSHOT</version>

</parent>

<modelVersion>4.0.0</modelVersion>

<artifactId>Sparkes-core</artifactId>

<properties>

<maven.compiler.source>8</maven.compiler.source>

<maven.compiler.target>8</maven.compiler.target>

</properties>

<dependencies>

<dependency>

<groupId>org.apache.spark</groupId>

<artifactId>spark-core_2.12</artifactId>

<version>3.0.0</version>

</dependency>

<dependency>

<groupId>org.apache.spark</groupId>

<artifactId>spark-streaming_2.12</artifactId>

<version>3.0.0</version>

</dependency>

</dependencies>

</project>

代码

import org.apache.spark.SparkConf

import org.apache.spark.streaming.{Seconds, StreamingContext}

object SparkStreaming {

def main(args: Array[String]): Unit = {

// 创建 SparkConf 对象,设置运行模式和应用名称

val sparkConf = new SparkConf().setMaster("local[*]").setAppName("streaming")

// 创建 StreamingContext 对象,设置批处理间隔为 3 秒

val ssc = new StreamingContext(sparkConf, Seconds (3))

// 从指定的套接字地址接收文本流数据

val lineStreams = ssc.socketTextStream("node01", 9999)

// 将每行文本拆分为单词

val wordStreams = lineStreams.flatMap(_.split(" "))

// 将每个单词映射为 (单词, 1) 的键值对

val wordAndOneStreams = wordStreams.map((_, 1))

// 对相同单词的计数进行累加

val wordAndCountStreams = wordAndOneStreams.reduceByKey(_ + _)

// 打印每个批次的单词计数结果

wordAndCountStreams.print()

// 启动 StreamingContext

ssc.start()

// 等待 StreamingContext 终止

ssc.awaitTermination()

}

}

相关推荐
MQ_SOFTWARE6 小时前
文件权限标记机制在知识安全共享中的应用实践
大数据·网络
花下的晚风7 小时前
模拟flink处理无限数据流
大数据·flink
小悟空7 小时前
[AI 生成] Flink 面试题
大数据·面试·flink
livemetee7 小时前
Flink2.0学习笔记:Stream API 常用转换算子
大数据·学习·flink
AutoMQ9 小时前
技术干货|为什么越来越多企业放弃 Flink/Spark,用 AutoMQ 替代传统 ETL?
大数据
zxsz_com_cn10 小时前
智能化设备健康管理:中讯烛龙预测性维护系统引领行业变革
大数据·架构
Pigwantofly11 小时前
SpringAI入门及浅实践,实战 Spring‎ AI 调用大模型、提示词工程、对话记忆、Adv‎isor 的使用
java·大数据·人工智能·spring
拓端研究室11 小时前
专题:2025电商增长新势力洞察报告:区域裂变、平台垄断与银发平权|附260+报告PDF、原数据表汇总下载
大数据·人工智能
阿里云大数据AI技术12 小时前
[VLDB 2025]面向Flink集群巡检的交叉对比学习异常检测
大数据·人工智能·flink
青云交13 小时前
电科金仓 KingbaseES 深度解码:技术突破・行业实践・沙龙邀约 -- 融合数据库的变革之力
大数据·数据安全·数字化转型·kingbasees·企业级应用·融合数据库·多模存储