scala - Apache Spark 3 和向后兼容性?

标签 scala apache-spark delta-lake

我们有几个 Spark 应用程序在使用 Spark 2.4.1 (Scala 2.11.12) 开发的生产环境中运行。 对于我们的几个新 Spark 作业,我们正在考虑利用 DeltaLake 的功能。为此,我们需要使用 Spark 2.4.2(或更高版本)。

我的问题是:

  1. 如果我们将 Spark 集群升级到 3.0.0,我们的 2.4.1 应用程序是否仍然可以在新集群上运行(无需重新编译)?
  2. 如果我们需要使用 Spark 3 重新编译我们以前的 Spark 作业,它们的源代码是否兼容或是否需要任何迁移?

最佳答案

Spark 3.0.0 中有一些重大变化,包括源代码不兼容的变化和二进制不兼容的变化。参见 https://spark.apache.org/releases/spark-release-3-0-0.html .并且 Scala 2.11 和 2.12 之间还存在一些源代码和二进制不兼容的更改,因此您可能还需要因为 Scala 版本更改而更新代码。

但是,只有 Delta Lake 0.7.0 及以上版本需要 Spark 3.0.0。如果升级到 Spark 3.0.0 需要大量工作,可以使用 Delta Lake 0.6.x 或以下版本。您只需要在 2.4.x 行中将 Spark 升级到 2.4.2 或更高版本。它们应该是源代码和二进制兼容的。

关于scala - Apache Spark 3 和向后兼容性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62505895/

相关文章:

apache-spark - 根据数据帧条件在 Spark 中创建自定义计数器

scala - 线程 “main”中的异常java.lang.IllegalArgumentException:实例化 'org.apache.spark.sql.hive.HiveSessionState'时出错:

azure - Delta Lake RESTORE 问题 (Databricks)

azure - Hive 表和 databricks 增量表之间的时间戳数据值不同

没有夹具的ScalaTest测试名称?

scala - 组合偏函数

linux - 显然由于 "spark-submit"参数(具有 * 通配符)未扩展,无法通过系统调用从 scala 中调用 "--jars"

scala - SBT 本地 Maven 存储库依赖

scala - 比较 Seq 和 Array 的不同行为

apache-spark - 如何计算一天从 Kafka 主题中获取的消息数?