2016-10-03 27 views
1

我有一个SparkConf对象:JavaSparkContext构造函数是否将使用所有传递的配置?

final SparkConf conf = new SparkConf(); 

,并从配置,我实例化我的JavaSparkContext

JavaSparkContext context = new JavaSparkContext(conf); 

context有可以使用context.hadoopConfiguration()提取的配置。

我的问题是,如果我将配置添加到conf,我的context的配置是否具有此配置?换句话说,就相当于

context.hadoopConfiguration().setBoolean("mapreduce.output.fileoutputformat.compress", false); 

回答

1

我的问题

conf.set("mapreduce.output.fileoutputformat.compress", false); 

是,如果我添加一个配置的conf,将我的上下文的配置有这样的配置呢?

是的,但在context.getConf(),而不是在hadoopConfiguration()

conf.set(...)相当于context.hadoopConfiguration().setBoolean(...)

  1. hadoopConfigurationconf初始化创建上下文时,如果设置后的东西,它不会改变。

  2. 如果你看看它是如何初始化的,你最终会在https://github.com/apache/spark/blob/master/core/src/main/scala/org/apache/spark/deploy/SparkHadoopUtil.scala#L82。尤其要在hadoopConfiguration中设置"mapreduce.output.fileoutputformat.compress",您需要使用conf中的密钥"spark.hadoop.mapreduce.output.fileoutputformat.compress"

相关问题