Kafka python API 支持流处理吗?
Does Kafka python API support stream processing?
我在Java中使用过Kafka Streams。我在 python 中找不到类似的 API。
Apache Kafka 是否支持 python 中的流处理?
Kafka Streams 仅作为 JVM 库提供,但至少有两个 Python 实现
- robinhood/faust (Not maintained as of 2020, but was forked)
- wintincode/winton-kafka-streams(好像不维护了)
理论上,您可以尝试使用 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.1 和 Kafka 2.7.0 以及 PySpark[=33] 进行了测试=].
资源也很有用。
我在Java中使用过Kafka Streams。我在 python 中找不到类似的 API。 Apache Kafka 是否支持 python 中的流处理?
Kafka Streams 仅作为 JVM 库提供,但至少有两个 Python 实现
- robinhood/faust (Not maintained as of 2020, but was forked)
- wintincode/winton-kafka-streams(好像不维护了)
理论上,您可以尝试使用 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.1 和 Kafka 2.7.0 以及 PySpark[=33] 进行了测试=].