簡體   English   中英

Pyspark - 打印來自 Kafka 的消息

[英]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,您可以使用Kafka Connect而不是為此編寫 Spark 代碼

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM