我正在尝试在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统计信息。
有什么想法吗?
答案 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)