【问题标题】:Setting log4j properties in pyspark在 pyspark 中设置 log4j 属性
【发布时间】:2019-03-15 06:39:56
【问题描述】:

我正在尝试在 pyspark 中设置一些 log4j 属性,但无法使其正常工作。例如,我想设置以下

log4j.logger.org.apache.hadoop.fs.s3a.S3AStorageStatistics=INFO

如何在代码中执行此操作?我试过在 SparkConf 中使用 extraJavaOptions:

conf = SparkConf()
conf.set("spark.driver.extraJavaOptions",
         "-Dlog4j.debug=true -Dlog4j.logger.org.apache.hadoop.fs.s3a.S3AStorageStatistics=INFO")
spark_session = SparkSession.builder\
    .config(conf)\
    .getOrCreate()

还有在 PYSPARK_SUBMIT_ARGS 中:

os.environ['PYSPARK_SUBMIT_ARGS'] = \
            '--packages org.apache.hadoop:hadoop-aws:2.7.3 pyspark-shell ' \
            '--conf "spark.driver.extraJavaOptions=-Dlog4j.logger.org.apache.hadoop.fs.s3a.S3AStorageStatistics=INFO" -Dlog4j.debug=true'

但我认为两者都不起作用,因为当我从 s3a:// url 读取文件时,我在日志中看不到任何 S3A 统计信息。

有什么想法吗?

【问题讨论】:

    标签: apache-spark pyspark log4j


    【解决方案1】:

    您可以在 pyspark 代码中设置/更改日志级别

    logger = spark_session._jvm.org.apache.log4j.LogManager\
        .getLogger("log4j.logger.org.apache.hadoop.fs.s3a.S3AStorageStatistics")
    level = spark_session._jvm.org.apache.log4j.Level.toLevel("info")
    logger.setLevel(level)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      • 2013-01-31
      • 2022-01-17
      相关资源
      最近更新 更多