EMR中设置SPARK_HOME后将使用哪个Spark版本?
EMR环境下Spark版本运行优先级问题
场景说明
我们使用的EMR 6.5.0预装了Spark 3.1.2:
- 下载PySpark Python库2.3.3后正常提交应用,应用会运行EMR默认的Spark 3.1.2版本
- 若明确将
SPARK_HOME设置为PySpark 2.3.3的安装路径(~/.python3.7/site-packages/pyspark)再提交应用,会运行哪个版本?
答案
当你手动设置SPARK_HOME指向PySpark 2.3.3的安装路径时,提交的应用会运行PySpark 2.3.3版本。
Spark的提交逻辑会优先读取SPARK_HOME环境变量指定的路径,以此来加载对应的Spark核心组件、配置文件和依赖库。一旦你覆盖了默认的SPARK_HOME,spark-submit就会使用该路径下的Spark版本执行应用,而非EMR预装的系统默认版本。
需要提醒的是,这种跨版本混用存在兼容性风险——比如PySpark 2.3.3的API与Spark 3.1.2的底层执行引擎可能存在不兼容的情况,建议尽量保持PySpark版本与集群的Spark版本一致。
内容的提问来源于stack exchange,提问作者dataviews
相关产品推荐
相关产品推荐

