我在Java中使用了Kafka Streams,但在Python中找不到类似的API。 Apache Kafka是否支持Python中的流处理?
我在Java中使用了Kafka Streams,但在Python中找不到类似的API。 Apache Kafka是否支持Python中的流处理?
Kafka Streams仅作为JVM库提供,但有一些可以与之相媲美的Python实现
fluvii
(见讨论)理论上,你可以尝试使用Jython或Py4j来使用JVM实现,但可能需要比必要更多的工作。
除了这些选项之外,您还可以尝试使用Apache Beam, Flink或Spark,但它们每个都需要一个外部集群调度程序来进行扩展(并且还需要安装Java)。
如果您对HTTP方法没有问题,那么运行一个KSQLDB实例(同样,需要Java作为服务器)并且通过内置的SQL函数从Python中调用其REST接口可以工作。然而,如果要构建自己的函数,则需要编写JVM编译代码,就我最后一次检查的情况而言。
如果以上选项都不适用,那么您只能使用基本的消费者/生产者方法。
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 上进行了测试。之前KStrame的Python API不可用,但现在可以使用新的KStream Python库 https://pypi.org/project/kstreams/
特点: