我在Java中使用过Kafka Streams。我在python中找不到类似的API。 Apache Kafka是否支持python中的流处理?
答案 0 :(得分:4)
Kafka Streams仅作为JVM库提供,但至少有两个Python实现
从理论上讲,您可以尝试使用Jython或Py4j来支持JVM实现,但否则,您将被消费者/生产者所困扰或调用KSQL REST接口。
除了这些选项之外,您还可以尝试Apache Beam,Flink或Spark,但它们每个都需要外部集群调度程序来扩展。
答案 1 :(得分:2)
如果您使用 Apache Spark,您可以将其用作生产者和消费者。无需依赖 Faust 等第 3 部分库,但您需要一个 Spark 集群管理器(独立、YARN 或 Kubernetes 来扩展它)
要在 Spark 中使用 Kafka 数据流,请使用 Structured Streaming + Kafka Integration Guide。
请记住,使用 spark-sql-kafka
时必须附加 spark-submit
包:
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 上进行了测试。
This 资源也很有用。