如何从 pyspark 设置 hadoop 配置值

How to set hadoop configuration values from pyspark

SparkContext 的 Scala 版本具有 属性

sc.hadoopConfiguration

我已经成功地使用它来设置 Hadoop 属性(在 Scala 中)

例如

sc.hadoopConfiguration.set("my.mapreduce.setting","someVal")

但是 python 版本的 SparkContext 缺少该访问器。有没有办法将 Hadoop 配置值设置到 PySpark 上下文使用的 Hadoop 配置中?

我查看了 PySpark 源代码 (context.py),没有直接的等价物。相反,一些特定的方法支持发送(键,值)对的映射:

fileLines = sc.newAPIHadoopFile('dev/*', 
'org.apache.hadoop.mapreduce.lib.input.TextInputFormat',
'org.apache.hadoop.io.LongWritable',
'org.apache.hadoop.io.Text',
conf={'mapreduce.input.fileinputformat.input.dir.recursive':'true'}
).count()
sc._jsc.hadoopConfiguration().set('my.mapreduce.setting', 'someVal')

应该可以

您可以在提交作业时使用 --conf 参数设置任何 Hadoop 属性。

--conf "spark.hadoop.fs.mapr.trace=debug"

来源:https://github.com/apache/spark/blob/branch-1.6/core/src/main/scala/org/apache/spark/deploy/SparkHadoopUtil.scala#L105