Kafka python API 支持流处理吗?

Does Kafka python API support stream processing?

我在Java中使用过Kafka Streams。我在 python 中找不到类似的 API。 Apache Kafka 是否支持 python 中的流处理?

Kafka Streams 仅作为 JVM 库提供,但至少有两个 Python 实现

理论上,您可以尝试使用 Jython 或 Py4j 来使用 JVM 实现,但可能需要做更多的工作。

除了这些选项之外,您还可以尝试 Apache Beam, Flink or Spark,但它们都需要外部集群调度程序来横向扩展(并且还需要 Java 安装)。

如果您对 HTTP 方法没问题,那么 运行 一个 KSQL 数据库实例(同样,该服务器需要 Java)并从 [=33 调用其 REST 接口=] 与内置的 SQL 功能可以工作。但是,在那里构建您自己的函数将需要编写 Java 代码,我最后检查了一下。

如果这些选项中的 none 是合适的,那么您只能使用基本的 consumer/producer 方法。

如果您正在使用 Apache Spark,您可以将其用作 生产者消费者.无需依赖像 Faust 这样的第三部分库,但你需要一个 Spark 集群管理器(Standalone、YARN 或 Kubernetes 来扩展它)

要在 Spark 中使用 Kafka 数据流,请使用 Structured Streaming + Kafka Integration Guide

请记住,使用 spark-submit 时必须附加 spark-sql-kafka 包:

spark-submit --packages org.apache.spark:spark-sql-kafka-0-10_2.12:3.0.1 StructuredStreaming.py

此解决方案已通过 Spark 3.0.1Kafka 2.7.0 以及 PySpark[=33] 进行了测试=].

资源也很有用。