[英]Pyspark - print messages from Kafka
我建立了一個帶有生產者和消費者的 kafka 系統,將 json 文件的行作為消息流式傳輸。
使用 pyspark,我需要分析不同流窗口的數據。 為此,我需要查看數據,因為它們是由 pyspark 流式傳輸的……我該怎么做?
為了運行代碼,我使用了Yannael 的 Docker容器。 這是我的python代碼:
# Add dependencies and load modules
import os
os.environ['PYSPARK_SUBMIT_ARGS'] = '--conf spark.ui.port=4040 --packages org.apache.spark:spark-streaming-kafka-0-8_2.11:2.0.0,com.datastax.spark:spark-cassandra-connector_2.11:2.0.0-M3 pyspark-shell'
from kafka import KafkaConsumer
from random import randint
from time import sleep
# Load modules and start SparkContext
from pyspark import SparkContext, SparkConf
from pyspark.sql import SQLContext, Row
conf = SparkConf() \
.setAppName("Streaming test") \
.setMaster("local[2]") \
.set("spark.cassandra.connection.host", "127.0.0.1")
try:
sc.stop()
except:
pass
sc = SparkContext(conf=conf)
sqlContext=SQLContext(sc)
from pyspark.streaming import StreamingContext
from pyspark.streaming.kafka import KafkaUtils
# Create streaming task
ssc = StreamingContext(sc, 0.60)
kafkaStream = KafkaUtils.createStream(ssc, "127.0.0.1:2181", "spark-streaming-consumer", {'test': 1})
ssc.start()
您可以調用kafkaStream.pprint()
,也可以了解有關結構化流的更多信息,您可以像這樣打印
query = kafkaStream \
.writeStream \
.outputMode("complete") \
.format("console") \
.start()
query.awaitTermination()
我看到您有cassandra端點,因此假設您正在寫入 Cassandra,您可以使用Kafka Connect而不是為此編寫 Spark 代碼
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.