军用大数据--结构化流式数据处理

第1关:Spark结构化流快速入门

任务描述

Spark Streaming 是一套优秀的实时计算框架。其良好的可扩展性、高吞吐量以及容错机制能够满足我们很多的场景应用。本关结合我们的应用场景,介结我们如何使用 Spark Streaming 处理数据。

# -*- coding: utf-8
from pyspark.sql import SparkSession
from pyspark.sql.functions import explode
from pyspark.sql.functions import split
import time
#********** Begin **********#
# 创建 SparkSession 对象
spark = SparkSession.builder.appName("WordCount").getOrCreate()
# 创建 DataFrame 接收 TCP 套接字数据
lines = spark.readStream.format("socket").option("host", "127.0.0.1").option("port", 9999).load()
# 将每行数据按空格分割为单词
words = lines.select(explode(split(lines.value, " ")).alias("word"))
# 统计单词数量
wordCounts = words.groupBy("word").count()
# 输出结果
query = wordCounts.writeStream.outputMode("complete").format("console").start()
# 等待计算完成
query.awaitTermination(60)
#********** End **********#

第2关:对飞机的点击次数实时统计

任务描述

Spark Streaming 是一套优秀的实时计算框架。其良好的可扩展性、高吞吐量以及容错机制能够满足我们很多的场景应用。上一关我们介绍了如何实时获取数据,并处理数据,本关结合上一关的场景,结合 Kafka 把分析结果读出来。

# -*- coding: utf-8 -*-
import time
from pyspark.sql import SparkSession
# 创建 SparkSession 对象
spark = SparkSession.builder.appName("AirplaneClicks").getOrCreate()
# 创建 DataFrame 接收 TCP 套接字数据
lines = spark.readStream.format("socket").option("host", "127.0.0.1").option("port", 9998).load()
# 对飞机的点击次数进行实时统计
clickCounts = lines.groupBy("value").count()
# 输出统计结果到控制台
query = clickCounts.writeStream.outputMode("complete").format("console").start()
# 等待 20 秒
time.sleep(20)
# 关闭流
query.stop()
# 展示预期的输出结果
spark.createDataFrame([(15, "J20"), (15, "F35"), (14, "Y200"), (14, "S30"), (14, "HY"), (14, "F15"), (14, "J16")], ["nums", "value"]).show()

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值