如何检查Spark的版本

84

如标题所述,我该如何知道在CentOS中安装了哪个版本的Spark?

当前系统已安装cdh5.1.0。

16个回答

2
尝试这种方式:

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)

2
如果您想使用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


这应该是 sc = SparkContext.getOrCreate(conf=sc_conf)。不要像这样写:sc = SparkContext(conf=sc_conf) - toom

1
如果像我一样,在docker容器中运行spark且没有spark-shell,可以在jupyter笔记本中运行,构建名为scSparkContext对象,并按下面代码中所示调用版本:
docker run -p 8888:8888 jupyter/pyspark-notebook ##in the shell where docker is installed

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


1
大多数答案都需要初始化sparksession。这个答案提供了一种从库中静态推断版本的方法。
ammonites@ org.apache.spark.SPARK_VERSION
res4: String = "2.4.5"

虽然这段代码可能回答了问题,但是提供关于为什么和/或如何回答问题的额外上下文可以提高其长期价值。 - Igor F.

-1

非交互式的方式,我正在使用它来正确安装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

它使用grep和pipe,而其他答案都没有使用非交互式方法,也没有将输出缓存到文件中。以下是如何使用pip install的示例。 - Valeriy Solovyov

-1
为了在shell上打印Spark的版本,以下解决方案可行。
SPARK_VERSION=$(spark-shell --version &> tmp.data ; grep version tmp.data | head -1 | awk '{print $NF}';rm tmp.data)
echo $SPARK_VERSION

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接