如何在 pyspark 中获取一行结构化流数据帧的数据?

How do I get the data of one row of a Structured Streaming Dataframe in pyspark?

我有一个 Kafka 代理,其主题连接到 Spark Structured Streaming。我的主题将数据发送到我的流式数据帧,我想获取该主题每一行的信息(因为我需要将每一行与另一个数据库进行比较)。

如果我可以将我的批次转换为 RDD,我可以轻松地获取每一行。
我也看到了一些关于 DStreams 的东西,但我不知道最新版本的 f spark 是否仍然有效。

DStream 是我问题的答案吗?或者是否有任何其他解决方案可以逐行获取我的数据?

从 kafka 读取 spark streaming 中的数据,并在 foreach writer of spark streaming 中写入您的自定义行比较 . 例如

streamingDatasetOfString.writeStream.foreach(

新 ForeachWriter[字符串] {

def open(partitionId: Long, version: Long): Boolean = {
  // Open connection
}

def process(record: String): Unit = {
  // Write string to connection
}

def close(errorOrNull: Throwable): Unit = {
  // Close the connection
}}).start()

` 自 spark 2.4

以来,python、scala、java 支持此功能