问题描述
我使用水槽将数据发布到2个kafka主题,如何在单独的数据框中读取它们?
我使用了2个主题,akr和akr2。我希望他们的数据位于不同的数据框中。
解决方法
根据 Spark + Kafka Integration Guide 并假设您计划使用结构化流处理它们,您可以定义所需的两个数据帧,如下所示:
val df1 = spark
.readStream
.format("kafka")
.option("kafka.bootstrap.servers","host1:port1,host2:port2")
.option("subscribe","akr")
.load()
.selectExpr("CAST(key AS STRING)","CAST(value AS STRING)")
val df2 = spark
.readStream
.format("kafka")
.option("kafka.bootstrap.servers","akr2")
.load()
.selectExpr("CAST(key AS STRING)","CAST(value AS STRING)")
只要您在 Dataframes 上有一些 Spark 动作,就会消耗上述两个主题的数据。