使用Pyspark处理来自Kafka流的数据

时间:2020-06-18 06:52:20

标签: apache-spark pyspark apache-kafka apache-spark-sql

kafka使用者的控制台如下所示:

["2017-12-31 16:06:01", 12472391, 1]
["2017-12-31 16:06:01", 12472097, 1]
["2017-12-31 16:05:59", 12471979, 1]
["2017-12-31 16:05:59", 12472099, 0]
["2017-12-31 16:05:59", 12472054, 0]
["2017-12-31 16:06:00", 12472318, 0]
["2017-12-31 16:06:00", 12471979, 0]

我想使用pyspark在指定时间段后获取列表中的每个值或这些值的df。

我尝试过的事情:

sc = SparkContext(appName='PythonStreamingDirectKafka')
sc.setLogLevel("WARN")
spark = SparkSession(sc)
ssc = StreamingContext(sc, 10)

brokers, topic = sys.argv[1:]


kvs = KafkaUtils.createDirectStream(ssc, [topic],
    {'metadata.broker.list': brokers})


lines = kvs.map(lambda x: x[1])
text =  lines.flatMap(lambda line: line.split(" ")).pprint()

ssc.start()
ssc.awaitTermination()

上面的文本变量是一个Dstream对象,我不知道如何操作或转换它。浏览了许多博客和文档。

我想将信息提取到python列表或pandas df中,以便可以对其进行操作

非常感谢您的帮助。谢谢〜

0 个答案:

没有答案