You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spark版本差异疑问:pyspark与spark2-submit显示版本不一致

嗨,这是个典型的Spark多版本共存场景,我帮你拆解清楚每个问题:

一、两个命令版本差异的原因

这说明你的系统里同时安装了Spark 1.x和Spark 2.x两个独立版本,不同命令对应不同的环境配置:

  • pyspark命令默认绑定的是Spark 1.6.0的安装路径,所以启动的是旧版本的交互式Spark Shell。
  • spark2-submit是Cloudera发行版里专门为Spark 2.x系列设计的命令(Cloudera习惯给Spark 2.x的工具加2后缀来区分旧版本),对应的就是你看到的2.2.0.cloudera2版本。
二、pyspark实际运行的版本

直接执行pyspark时,运行的就是控制台显示的1.6.0版本。你可以在启动后的pyspark Shell里执行这段代码确认:

print(sc.version)  # 输出当前SparkContext的版本号

如果想让pyspark启动Spark 2.x版本,需要先修改环境变量指向Spark 2.x的安装目录,再启动:

export SPARK_HOME=/your/path/to/spark2.2.0.cloudera2
pyspark
三、你日常用spark2-submit script.py的实际运行版本

这个命令明确调用的是Spark 2.x的提交工具,所以你的Python脚本会运行在Spark 2.2.0.cloudera2版本上。如果想在脚本里验证版本,可以加入这段代码:

from pyspark.sql import SparkSession

if __name__ == "__main__":
    spark = SparkSession.builder.appName("VersionCheck").getOrCreate()
    print(f"当前Spark版本: {spark.version}")
    spark.stop()

运行脚本后就能看到实际使用的版本号。

内容的提问来源于stack exchange,提问作者Harish

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:54:07