从 pyspark 会话中获取 hive 和 hadoop 版本

jam*_*iet 1 python apache-spark pyspark

我在带有配置单元的 hadoop 集群上使用 pyspark。我知道可以从命令行 ( spark-submit --version, hive --version, hadoop version)获取 spark、hive 和 hadoop 版本,但是我如何从 pyspark 中执行相同操作?

获得 spark 版本很容易:

print("Spark version = ".format(spark._sc.version))
Run Code Online (Sandbox Code Playgroud)

我不知道如何获得 hive & hadoop 版本。有人知道吗?TIA

bla*_*hop 5

从 pyspark 获取它们:

# spark
print(f"Spark version = {spark.version}")

# hadoop
print(f"Hadoop version = {sc._jvm.org.apache.hadoop.util.VersionInfo.getVersion()}")
Run Code Online (Sandbox Code Playgroud)

  • print(f"Hadoop version = {spark._sc._jvm.org.apache.hadoop.util.VersionInfo.getVersion()}") 这也适用于 hadoop 版本 (2认同)

jam*_*iet -3

好的,我通过这样做解决了这个问题:

from sh import hive, hadoop
print("Hive version = {0}".format(hive("--version")))
print("Hadoop version = {0}".format(hadoop("version")))
Run Code Online (Sandbox Code Playgroud)

如果有一种方法可以从spark对象中获取它而不必花钱,那就太好了。如果有人知道方法请告诉我。