You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何关闭PySpark 4.x中Traceback前的冗长JSON结构化日志?

关闭PySpark 4.x中JSON结构化错误日志的方法

PySpark 4.x执行错误代码时,会在Python Traceback前输出一段冗长的JSON格式日志(来自DataFrameQueryContextLogger),可以通过以下几种方式关闭:

方法一:创建SparkSession时配置

初始化SparkSession时直接添加配置参数,禁用该日志:

from pyspark.sql import SparkSession
from pyspark.sql.types import IntegerType

spark = SparkSession.builder \
    .appName("YourAppName") \
    .config("spark.sql.queryContext.log.enabled", "false") \
    .getOrCreate()

# 测试代码
a = [1, 2, 3]
aa = spark.createDataFrame(a, IntegerType())
aa.select("missing")

方法二:启动PySpark/Spark Shell时指定参数

在命令行启动pyspark或spark-shell时,通过--conf参数直接禁用:

# 启动pyspark
pyspark --conf spark.sql.queryContext.log.enabled=false

# 启动spark-shell
spark-shell --conf spark.sql.queryContext.log.enabled=false

方法三:修改Spark全局配置文件

如果需要全局生效,修改Spark的默认配置文件:

  1. 进入Spark安装目录的conf文件夹,复制spark-defaults.conf.template为spark-defaults.conf(已存在则跳过)
  2. 在spark-defaults.conf中添加一行:
    spark.sql.queryContext.log.enabled false
    
  3. 重启Spark服务后,所有会话都会自动应用该配置

完成以上操作后,执行错误代码时只会显示Python的Traceback信息,不会再输出冗长的JSON日志。

内容的提问来源于stack exchange,提问作者Jiri Humpolicek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.11 14:07:02