PyFlink 性能对比 Scala

PyFlink performance compared to Scala

PyFlink 性能与 Flink + Scala 相比如何?

大图。 目标是构建具有冷层和热层的 Lambda 架构。 冷(批处理)层将使用 Apache Spark (PySpark) 实现。 但是对于热(流)层,有不同的选择:Spark Streaming 或 Flink。

因此Apache Flink是纯流而不是Spark的微批,我倾向于选择Apache Flink。 但我唯一关心的是 PyFlink 的性能。它的延迟会比 PySpark 流式传输更短吗?是不是比Scala写的Flink代码慢?什么情况下比较慢?

提前致谢!

我已经实现了一些非常相似的东西,根据我的经验,这些是一些东西

  1. 作业的性能完全取决于您编写的代码类型,如果您在提取时使用一些用 python 到 运行 编写的自定义 UDF,那么性能将会比使用基于 Scala 的代码做同样的事情要慢——这主要是因为 python 对象到 JVM 的转换,反之亦然。但这会在您使用 Pyspark 时发生。
  2. Flink 是真正的流处理,spark 中的微批处理不是这样,如果您的用例确实需要真正的流服务,请继续使用 Flink。

如果您将服务坚持使用 PyFlink 中提供的本机函数,您将不会观察到任何明显的性能差异。