如何查看Spark版本

How to check the Spark version

如题,如何知道CentOS安装了哪个版本的spark?

当前系统已安装cdh5.1.0。

如果您使用 Spark-Shell,它会出现在开始的横幅中。

以编程方式,可以使用 SparkContext.version

打开 Spark shell 终端,运行 sc.version

您使用 spark-shell 或 pyspark 的任何 shell 命令,它都会出现在旁边带有版本名称的 Spark 徽标上。

$ pyspark
$ Python 2.6.6(r266:84292,2015 年 5 月 22 日,08:34:51) [GCC 4.4.7 20120313 (Red Hat 4.4.7-15)] 在 linux2 ………… ………… 欢迎来到
版本 1.3.0

您可以使用 spark-submit 命令: spark-submit --version

如果您正在使用 Databricks 并与笔记本对话,只需 运行 :

spark.version

在 Spark 中 2.x program/shell,

使用

spark.version   

其中 spark 变量属于 SparkSession 对象

spark-shell

开始时使用控制台日志
[root@bdhost001 ~]$ spark-shell
Setting the default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel).
Welcome to
      ____              __
     / __/__  ___ _____/ /__
    _\ \/ _ \/ _ `/ __/  '_/
   /___/ .__/\_,_/_/ /_/\_\   version 2.2.0
      /_/

未进入code/shell

spark-shell --version

[root@bdhost001 ~]$ spark-shell --version
Welcome to
      ____              __
     / __/__  ___ _____/ /__
    _\ \/ _ \/ _ `/ __/  '_/
   /___/ .__/\_,_/_/ /_/\_\   version 2.2.0
      /_/
                        
Type --help for more information.

spark-submit --version

[root@bdhost001 ~]$ spark-submit --version
Welcome to
      ____              __
     / __/__  ___ _____/ /__
    _\ \/ _ \/ _ `/ __/  '_/
   /___/ .__/\_,_/_/ /_/\_\   version 2.2.0
      /_/
                        
Type --help for more information.

如果您使用的是 pyspark,则可以在粗体 Spark 徽标旁边看到正在使用的 spark 版本,如下所示:

manoj@hadoop-host:~$ pyspark
Python 2.7.6 (default, Jun 22 2015, 17:58:13)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel).

Welcome to
      ____              __
     / __/__  ___ _____/ /__
    _\ \/ _ \/ _ `/ __/  '_/
   /__ / .__/\_,_/_/ /_/\_\   version 1.6.0
      /_/

Using Python version 2.7.6 (default, Jun 22 2015 17:58:13)
SparkContext available as sc, HiveContext available as sqlContext.
>>>

如果想显式获取spark版本,可以使用SparkContext的version方法,如下所示:

>>>
>>> sc.version
u'1.6.0'
>>>

如果您使用的是 Zeppelin 笔记本,您可以运行:

sc.version 

要了解 Scala 版本,您可以 运行:

util.Properties.versionString

使用下面获取spark版本

spark-submit --version

为了在 shell 上打印 Spark 的版本,请执行以下解决方案工作。

SPARK_VERSION=$(spark-shell --version &> tmp.data ; grep version tmp.data | head -1 | awk '{print $NF}';rm tmp.data)
echo $SPARK_VERSION

如果您想 运行 它以编程方式使用 python 脚本

你可以使用这个 script.py:

from pyspark.context import SparkContext
from pyspark import SQLContext, SparkConf

sc_conf = SparkConf()
sc = SparkContext(conf=sc_conf)
print(sc.version)

运行 它与 python script.pypython3 script.py


上面的脚本也适用于 python shell。


直接在 python 脚本上使用 print(sc.version) 将不起作用。如果你直接运行它,你会得到这个错误:NameError: name 'sc' is not defined.

这里的大部分答案都需要初始化 sparksession。这个答案提供了一种从库中静态推断版本的方法。

ammonites@ org.apache.spark.SPARK_VERSION
res4: String = "2.4.5"

我用于 AWS EMR 正确 PySpark 版本安装的非交互式方式:

# pip3 install pyspark==$(spark-submit --version 2>&1| grep -m 1  -Eo "([0-9]{1,}\.)+[0-9]{1,}") 
Collecting pyspark==2.4.4

解决方案:

#  spark-shell --version 2>&1| grep -m 1  -Eo "([0-9]{1,}\.)+[0-9]{1,}"
2.4.4

解决方案:

# spark-submit --version 2>&1| grep -m 1  -Eo "([0-9]{1,}\.)+[0-9]{1,}"
2.4.4

如果您想以编程方式打印版本,请使用

 from pyspark.sql import SparkSession 

 spark = SparkSession.builder.master("local").getOrCreate() 
 print(spark.sparkContext.version)

如果像我一样,一个是 运行ning spark inside a docker container 并且没有什么办法用于 spark-shell,一个可以 运行 jupyter notebook,在 jupyter notebook 中构建名为 scSparkContext 对象,并调用如下代码所示的版本:

docker run -p 8888:8888 jupyter/pyspark-notebook ##in the shell where docker is installed

import pyspark
sc = pyspark.SparkContext('local[*]')
sc.version

试试这个方法:

import util.Properties.versionString
import org.apache.spark.sql.SparkSession

val spark = SparkSession
  .builder
  .appName("my_app")
  .master("local[6]")
  .getOrCreate()
println("Spark Version: " + spark.version)
println("Scala Version: " + versionString)