行业新闻

Databricks 基准测试:声明式 Spark 管道代码更少、运行前即可校验

AI agent 写的数据管道越来越多,出错成本随之放大。这项基准测试说明:让 agent 只描述结果、由 Spark 决定怎么执行,比让它一步步写过程式代码更省时、更好审查。

Databricks 用同一个 AI agent 在 22 个数据工程任务、12 组脏数据上分别写过程式和声明式两种 Spark 管道,共 528 条。声明式管道因为能在运行前做结构化校验,把排错时间缩短约 34 倍,代码量也更少、更容易 review;两种方式最终都能完成几乎全部任务。

正文摘录

为 Agent 而生:Spark 声明式管道的理由 我们对 528 条由 Agent 构建的数据管道进行了基准测试——声明式编写被证明比过程式代码更便宜、更快速、更精简。 AI Agent 现在编写的生产数据管道占比越来越高(如今 Databricks 上超过 70% 的 SDP 管道由 Agent 创建),这抬高了两个方面的赌注:(1) Agent 的每一次尝试都要消耗算力和时间,因此迭代必须便宜且高效;(2) 代码审查成为关键关卡,因此代码必须简洁、可读且正确。Apache Spark® 提供两种编程模型来编写管道:过程式和声明式。它们的区别在于你写什么、Spark 在运行前能检查什么,以及一个错误要付出多大代价。我们用同一个 Agent、在同样的任务上对两者进行了基准测试,结果声明式更安全、更便宜、更精简。 过程式管道是一段代码,逐步告诉 Spark 如何构建每个数据集。要知道它是否能工作,唯一的办法就是运行它。 声明式管道描述你想要的数据集,让 Spark 决定如何构建它们。这类似于你给 LLM 一个提示,由它自己想办法完成(使用合适的技能和工具)。用代码最能说明问题,看看一个简单的拼写错误会如何导致失败: Bug 分两种。结构性 Bug 可以通过阅读管道发现:未解析的列引用、尚不存在的表、不允许的配置变更。静默 Bug 只在运行结束、答案错误时才出现在输出里。 声明式管道可以在运行前检查结构性 Bug,这类似于像 Rust 这样的类型语言在编译期检查数据流。因为声明式管道是一种描述而非一次运行,Spark 可以通过阅读它来回答三类问题: 在过程式 PySpark 中,AI 编码 Agent 编写数据操作,比如过滤无效行和连接表。它还要编写代码,按正确顺序运行管道的各个步骤并保存结果。这些支撑代码在不同管道之间重复了大量相同的样板代码。

阅读原文(databricks.com)→

行业新闻2026-10-23原文

相关内容