在pyspark中设置log4j属性

时间:2019-03-15 06:39:57

标签: apache-spark pyspark log4j

我正在尝试在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://网址读取文件时,我在日志中看不到任何S3A统计信息。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您可以在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)