211

今天学习了如何将Spark Streaming与Kafka集成,用于处理实时数据流。通过Kafka的消费者API,Spark可以订阅Kafka主题并处理消息。

代码示例:

python
复制
from pyspark import SparkContext
from pyspark.streaming import StreamingContext
from pyspark.streaming.kafka import KafkaUtils

sc = SparkContext("local[2]", "KafkaIntegration")
ssc = StreamingContext(sc, 1)

# 定义Kafka参数
kafka_params = {"metadata.broker.list": "localhost:9092"}
topics = ["test_topic"]

# 创建Kafka流
kafka_stream = KafkaUtils.createDirectStream(ssc, topics, kafka_params)

# 处理数据
lines = kafka_stream.map(lambda x: x[1])
word_counts = lines.flatMap(lambda line: line.split(" ")).map(lambda word: (word, 1)).reduceByKey(lambda x, y: x + y)

# 打印结果
word_counts.pprint()

ssc.start()
ssc.awaitTermination()
运行方式:

启动Kafka并创建主题test_topic。

使用Kafka生产者发送消息。

运行Spark Streaming程序处理消息。

posted @ 2025-02-11 23:56  混沌武士丞  阅读(19)  评论(0)    收藏  举报