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

如何在BigQuery中显示调用Apache Spark的存储过程输出?

在BigQuery WebUI中查看Spark存储过程的DataFrame输出
  • 利用Spark日志输出捕获内容
    BigQuery的Spark存储过程不会直接把df.printSchema()或df.show()的输出展示在WebUI里,你可以通过Spark的日志记录器把内容写入作业日志,步骤如下:
    1. 引入日志模块并创建日志实例
    2. 将DataFrame的Schema和数据转为字符串后写入日志
      示例代码:
import logging
# 获取Spark日志实例
logger = spark._jvm.org.apache.log4j.Logger.getLogger("SparkProcLogger")

# 捕获并输出Schema
schema_content = df.schema.json()
logger.info("=== DataFrame Schema ===")
logger.info(schema_content)

# 捕获并输出数据(注意大数据量时别这么做,避免日志过大)
logger.info("=== DataFrame Sample Data ===")
for row in df.limit(10).toJSON().collect():
    logger.info(row)

之后在WebUI的作业历史里找到对应的Spark作业,进入后查看日志就能看到这些输出。

  • 写入临时表后查询查看
    把Schema和数据存入临时表,执行完存储过程后直接查询临时表:
# 保存Schema到临时表
schema_lines = df.schema.json().split("\n")
spark.createDataFrame([(line,) for line in schema_lines], ["schema_content"]).createOrReplaceTempView("temp_df_schema")

# 保存数据到临时表(可根据需求限制行数)
df.limit(20).createOrReplaceTempView("temp_df_data")

执行完存储过程后,在BigQuery查询编辑器中运行:

-- 查看Schema
SELECT * FROM temp_df_schema;
-- 查看数据
SELECT * FROM temp_df_data;

就能直接在WebUI里看到Schema和数据内容。

  • 通过BigQuery作业日志查看
    执行完Spark存储过程后,回到BigQuery的作业页面,找到对应的存储过程执行记录,点击进入后切换到日志标签页,这里会汇总Spark作业的运行日志,包括你通过logger输出的所有内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 20:37:05