如何检查火花版本

如标题所示,我如何知道哪个版本的火花已安装在 CentOS?

当前系统已经安装了 cdh5.1.0。

146449 次浏览

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

可以通过编程方式使用 SparkContext.version

打开 Spark shell Terminal,运行 sc.version

enter image description here

无论你使用哪个 shell 命令,它都会出现在带有版本名的 Spark Logo 上。

$火花
$Python 2.6.6(r266:84292,May 222015,08:34:51) [ GCC 4.4.720120313(Red Hat 4.4.7-15)] on linux2 ............ ........... 欢迎来到
1.3.0版本

你可以使用“火花提交”命令: spark-submit --version

如果你正在使用 Databricks 和笔记本对话,只需运行:

spark.version

在 Spark 2.x 程序/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
/_/

不需要输入代码/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.

如果您使用的是火花,可以看到火花版旁边的大胆火花标志如下所示:

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.
>>>

如果希望显式地获得火花版本,可以使用 SparkContext 的 version 方法,如下所示:

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

如果你在 齐柏林飞艇笔记本上,你可以运行:

sc.version

了解 Scala 版本,你可以运行:

util.Properties.versionString

使用下面得到火花版

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.py或者 python3 script.py运行它


上面的脚本也适用于 pythonshell。


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

这里的大多数答案都需要初始化一个火花会话。这个答案提供了一种从库中静态推断版本的方法。

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)

如果像我一样,一个人在一个码头容器里面运行火花,对火花外壳没有什么办法,那么他可以运行木星笔记本,在木星笔记本中构建名为 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)