我有一个 SparkConf
对象:
final SparkConf conf = new SparkConf();
从该配置中,我实例化了我的 JavaSparkContext
:
JavaSparkContext context = new JavaSparkContext(conf);
我的context
有一个可以使用context.hadoopConfiguration()
提取的配置。
我的问题是,如果我在conf
中添加配置,我的context
的配置会有这个配置吗?换句话说,就是
conf.set("mapreduce.output.fileoutputformat.compress", false);
相当于
context.hadoopConfiguration().setBoolean("mapreduce.output.fileoutputformat.compress", false);
最佳答案
My question is, if I add a configuration to conf, will my context's configuration have this configuration?
是的,但是在 context.getConf()
中,而不是在 hadoopConfiguration()
中。
is
conf.set(...)
equivalent tocontext.hadoopConfiguration().setBoolean(...)
?
<hadoopConfiguration
是在创建上下文时从conf
初始化的,如果您之后设置任何内容,它都不会改变。如果你看看它是如何初始化的,你最终会得到 https://github.com/apache/spark/blob/master/core/src/main/scala/org/apache/spark/deploy/SparkHadoopUtil.scala#L82 。特别是,要在
hadoopConfiguration
中设置"mapreduce.output.fileoutputformat.compress"
,需要使用键"spark.hadoop.mapreduce.output.fileoutputformat .compress"
在conf
中。
关于java - JavaSparkContext 构造函数是否会使用传递的所有配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39831958/