我正在使用jupyter在Spark集群上运行python脚本。我想更改驱动程序默认堆栈大小。我在documentation中发现我可以使用spark.driver.extraJavaOptions
向驱动程序JVM发送任何选项,但文档中有一个注释:
注意:在客户端模式下,不能通过以下方式设置此配置 SparkConf直接在你的应用程序中,因为驱动程序JVM有 已经开始了。相反,请通过 --driver-java-options命令行选项或在默认属性文件中。
问题是:如何在从jupyter运行时更改默认驱动程序参数?
答案 0 :(得分:2)
您可以通过将spark.driver.extraJavaOptions作为配置值传递到SparkConf来自定义用于驱动程序的Java选项,例如:
from pyspark import SparkConf, SparkContext
conf = (SparkConf()
.setMaster("spark://spark-master:7077")
.setAppName("MyApp")
.set("spark.driver.extraJavaOptions", "-Xss4M"))
sc = SparkContext.getOrCreate(conf = conf)
请注意,在http://spark.apache.org/docs/latest/configuration.html中,它说明了spark.driver.extraJavaOptions:
注意:在客户端模式下,不能直接在应用程序中通过SparkConf设置此配置,因为驱动程序JVM已在此时启动。相反,请通过--driver-java-options命令行选项或默认属性文件中设置它。
然而,这是在谈论JVM SparkConf类。当它在PySpark Python SparkConf中设置时,它将它作为命令行参数传递给spark-submit,然后在实例化JVM时使用它,以便Spark文档中的注释不适用。