Spark(21):SparkStreaming之DStream入门

目录

0. 相关文章链接

1. WordCount 案例实操

1.1. 需求

1.2. 添加依赖

1.3. 编写代码

1.4. 启动程序并通过netcat发送数据

2. WordCount 解析


0. 相关文章链接

 Spark文章汇总 

1. WordCount 案例实操

1.1. 需求

使用 netcat 工具向 9999 端口不断的发送数据,通过 SparkStreaming 读取端口数据并统计不同单词出现的次数 

1.2. 添加依赖

<dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-streaming_2.12</artifactId> <version>3.0.0</version> 
</dependency> 

1.3. 编写代码

import org.apache.spark.SparkConf
import org.apache.spark.streaming.dstream.{DStream, ReceiverInputDStream}
import org.apache.spark.streaming.{Seconds, StreamingContext}object StreamTest{def main(args: Array[String]): Unit = {//1.初始化Spark配置信息val sparkConf: SparkConf = new SparkConf().setMaster("local[*]").setAppName("StreamTest")//2.初始化SparkStreamingContextval ssc: StreamingContext = new StreamingContext(sparkConf, Seconds(3))//3.通过监控端口创建DStream,读进来的数据为一行行val lineStreams: ReceiverInputDStream[String] = ssc.socketTextStream("localhost", 9999)//将每一行数据做切分,形成一个个单词val wordStreams: DStream[String] = lineStreams.flatMap((_: String).split(" "))//将单词映射成元组(word,1)val wordAndOneStreams: DStream[(String, Int)] = wordStreams.map(((_: String), 1))//将相同的单词次数做统计val wordAndCountStreams: DStream[(String, Int)] = wordAndOneStreams.reduceByKey((_: Int)+(_: Int))//打印wordAndCountStreams.print()//启动SparkStreamingContextssc.start()ssc.awaitTermination()}}

1.4. 启动程序并通过netcat发送数据

# centos7中的启动netcat命令
nc -lk 9999# win10中的启动netcat命令
nc -l -p 9999

最终输入数据和输出结果如下图片所示:

输入数据
输出结果

2. WordCount 解析

Discretized Stream 是 Spark Streaming 的基础抽象,代表持续性的数据流和经过各种 Spark 原语操作后的结果数据流。在内部实现上,DStream 是一系列连续的 RDD 来表示。每个 RDD 含有一段时间间隔内的数据:

对数据的操作也是按照 RDD 为单位来进行的:

计算过程由 Spark Engine 来完成:


注:其他Spark相关系列文章链接由此进 ->  Spark文章汇总 


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

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

相关文章

当我掉入计算机的大坑中时,遇到简单的题也很吃力,这可如何是好呢?

一支笔&#xff0c;一双手&#xff0c;一道力扣&#xff08;Leetcode&#xff09;做一宿&#xff01;&#xff01;&#xff01; 一、分享自己相关的经历 我们可能经常听到这句话&#xff0c;人永远赚不到认知以外的钱&#xff0c;如果把它放到程序员行业来说&#xff0c;同样适…

2.8 Bootstrap 图片

文章目录 Bootstrap 图片\<img> 类响应式图片 Bootstrap 图片 在本章中&#xff0c;我们将学习 Bootstrap 对图片的支持。Bootstrap 提供了三个可对图片应用简单样式的 class&#xff1a; .img-rounded&#xff1a;添加 border-radius:6px 来获得图片圆角。.img-circle&…

[工业互联-16]:工业Windows操作系统与实时性方案

目录 第1章 Windows操作系统 1.1 简介 1.2 Windows架构 第2章 工业Windows操作系统 2.1 简介 2.2 常见的工业Windows操作系统版本 2.3 定制化工业Windows 第3章 EtherCAT实时Windows方案 3.1 实时Windows的缘由 3.2 总体框架 3.3 ROS2方案 3.4 方案1&#xff1a;使…

设计模式之状态模式

目录 使用场景参与者协作效果实现相关模式实际应用和思考 状态(State)&#xff08;对象行为模式&#xff09;允许一个对象在内部状态改变时改变他的行为。对象看起来似乎修改了他的类 使用场景 一个对象的行为取决于它的状态&#xff0c;并且它必须在运行时刻根据状态改变它的…

Linux计划任务crontab

顺序是可以任意的, 任意指的是,选项可以都放前面 变量放后面 或者一个选项 一个选项对应的命令 df 查看文件占有情况 d1 只显示1级深度 -h格式好看点 显示所有用户进程和内存进程. uid是所属用户 PPID是父进程 kill终止进程 杀死进程&#xff0c;是正常退出。 如果普通杀不…

spring boot启动原理分析

springboot启动类中有两个关键的地方 1.SpringBootApplication注解 2.SpringApplication.run方法 SpringBootApplication注解分析 SpringBootApplication注解由三大注解构成&#xff0c; SpringBootConfiguration、EnableAutoConfiguration、ComponentScan。 SpringBootCon…

EIK+Filebeat+Kafka

目录 Kafka 概述 为什么需要消息队列&#xff08;MQ&#xff09; 使用消息队列的好处 消息队列的两种模式 Kafka 定义 Kafka 简介 Kafka 的特性 Kafka 系统架构 Partation 数据路由规则&#xff1a; 分区的原因 部署 kafka 集群 1.下载安装包 2.安装 Kafka 修改配…

STM32 Proteus仿真双机串口通讯同步电子时钟系统数码管显示 -0060

STM32 Proteus仿真双机串口通讯同步电子时钟系统数码管显示 -0060 Proteus仿真小实验&#xff1a; STM32 Proteus仿真双机串口通讯同步电子时钟系统数码管显示 -0060 功能&#xff1a; 硬件组成&#xff1a;本系统由2个设备组成 设备1&#xff1a;STM32F103R6单片机 8位数…

Jmeter场景设置与启动方式

目录 线程组设置 name和comments Action to be taken after a sampler error Thread Properties 线程属性设置 场景运行 远程运行配置 命令行 性能测试场景是用来模拟模拟真实用户操作的工作单元&#xff0c;所以场景设计一定要切合用户的操作逻辑&#xff0c;jmeter主要…

Python示例解释观察者模式

观察者模式是一种常用的设计模式&#xff0c;用于在对象之间建立一种一对多的依赖关系&#xff0c;当一个对象的状态发生变化时&#xff0c;所有依赖于它的对象都会得到通知并自动更新。下面通过一个简单的例子来解释观察者模式的概念。 假设我们有一个名为"主题"&a…

【IMX6ULL驱动开发学习】20. input子系统(按键实现ls命令)

一、input子系统相关结构体 二、input子系统实例实现&#xff1a; static struct input_dev *key_input;static void my_timer_handle(unsigned long data) {....../* 5.input子系统上报事件 *///第三个参数要变&#xff0c;如果两次上报value相同&#xff0c;则input子系统不会…

【项目管理】成本管理

一.成本管理的概述 在项目上对成本进行管理和控制是为了让项目经理真正了解完成项目所需要消耗的时间和所需要的资源&#xff0c;从而对其进行相应的成本控制。成本管理主要分成以下三个方面的内容&#xff1a; 二.成本估算 成本估算是对整个项目投入的各种资源的成本进行估算&…