我正在尝试编写一个方法(将通过执行器运行(,该方法将以字符串形式返回Spark版本。我知道我可以通过以下代码找到 Spark 版本:
SparkSession.builder().getOrCreate().version (even on executor)
但是,当我运行测试(Apache Spark源代码中的测试是在我的之前编写的(时,某些测试失败并显示以下错误:
由以下原因引起:java.lang.IllegalStateException:SparkSession 只能在驱动程序上创建和访问。
所以,我知道我不能使用SparkSession。因此,我的问题是,还有其他方法可以在执行器中找到Spark版本吗?
我通过直接导入SPARK_VERSION解决了我的问题:
import org.apache.spark.SPARK_VERSION
还有一个选项可以传输我类中已有的配置版本。