【问题标题】:How to set hadoop configuration values from pyspark如何从 pyspark 设置 hadoop 配置值
【发布时间】:2015-05-04 20:40:26
【问题描述】:

Scala 版本的 SparkContext 有这个属性

sc.hadoopConfiguration

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

例如

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

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

【问题讨论】:

    标签: scala apache-spark pyspark


    【解决方案1】:
    sc._jsc.hadoopConfiguration().set('my.mapreduce.setting', 'someVal')
    

    应该有效

    【讨论】:

    • 此解决方案也适用于任何试图在使用 s3n:// 地址时让其 AWS AccessKeyId/SecretAccessKey 被接受的人。 sc._jsc.hadoopConfiguration().set('fs.s3n.awsAccessKeyId','<access_key_id>')
    • 截至今天,_jsc 似乎不再可用。
    • 我已提交 SPARK-33436 以跟踪将 hadoopConfiguration 直接添加到 PySpark API,因此不再需要使用 ._jsc。
    【解决方案2】:

    您可以在提交作业时使用--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

    【讨论】:

      【解决方案3】:

      我查看了 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()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-08-05
        • 2022-12-17
        • 2017-06-12
        • 1970-01-01
        • 2015-06-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多