我喜欢避免使用spark-submit,而是使用python driver_file.py
开始我的PySpark代码
我们使用spark.driver.extraJavaOptions
和spark-submit或spark-defaults配置文件设置了一些代理设置。相反,我希望在Python代码中设置此选项,以便可以使用python driver_file.py
运行它
但是,由于某些原因,当我尝试使用以下代码执行此操作时,我无法访问我试图访问的资源。但是通过在spark-default中使用相同的选项,我可以做到。我做错了什么?
sconf = SparkConf().set("spark.serializer","org.apache.spark.serializer.KryoSerializer").set('spark.driver.extraJavaOptions', 'proxy_stuffness')
sconf.setAppName("something")
sc = SparkContext(conf = sconf)
print 'Config: ', sc.getConf().getAll()
发布于 2018-06-22 03:56:29
问题是有些设置无法在运行时在您的驱动程序中设置。这在一定程度上取决于您正在运行spark的环境/集群的类型,以及您向其提交应用程序的方式。我相信java选项设置只能通过spark-defaults.conf
或通过命令行调用spark-submit
来设置。
从文档中:
的Spark属性主要可以分为两类:一类是与deploy相关的,比如“spark.driver.memory”、“spark.executor.instances”,这类属性在运行时通过SparkConf进行程序化设置时可能不会受到影响,或者行为取决于你选择哪种集群管理器和部署模式,所以建议通过配置文件或者spark-submit命令行选项来设置;另一类主要是Spark运行时控制,比如“spark.task.maxFailures”,这类属性可以通过任何一种方式来设置。
https://spark.apache.org/docs/latest/configuration.html#dynamically-loading-spark-properties
https://stackoverflow.com/questions/50976043
复制相似问题