Spark Streaming 基础:DStream 与实时计算模型

知识点:
实时计算概念:批处理 vs 流处理,微批处理模型(Spark Streaming 的核心)
DStream:离散流,本质是一系列连续的 RDD
Spark Streaming 与 Spark Core 的关系:复用 Spark Core 的调度引擎
练习:
搭建本地实时流环境,实现单词实时统计(监听本地端口):

from pyspark.streaming import StreamingContext

初始化StreamingContext,批次间隔5秒

ssc = StreamingContext(spark.sparkContext, batchDuration=5)

监听本地9999端口

lines = ssc.socketTextStream("localhost", 9999)

实时词频统计

words = lines.flatMap(lambda line: line.split(" "))
word_counts = words.map(lambda word: (word, 1)).reduceByKey(lambda a, b: a + b)

打印结果

word_counts.pprint()

启动流计算

ssc.start()

等待计算结束

ssc.awaitTermination()
本地启动 NetCat:nc -lk 9999,输入文本测试
易错:
批次间隔(batchDuration)决定实时性,间隔越小,实时性越高,资源消耗越大
StreamingContext 启动后,不能再添加新的计算逻辑

posted @ 2026-01-24 09:51  再报错就堵桥0  阅读(2)  评论(0)    收藏  举报