夜雨聆风学习资料网

ARTICLE · 1255997

从 dev 到 prod,我按官方文档做,结果卡在

从 dev 到 prod,我按官方文档做,结果卡在

从 dev 到 prod,我按官方文档做,结果卡在

我按官方文档把数据管道改成流式,本以为能省内存。结果全量一跑,机器卡死,还不报错。

排查半天才发现,Polars 遇到不能流式的操作,会悄悄回退到内存引擎。它不报警,直接把你的优化一口口吃掉。

顺着物理计划一查,罪魁祸首全是我平时图省事埋的雷:

自定义函数逐行清洗:流式跑不了,还挡住列剪裁等优化。
顺手 collect 看中间结果:流水线被截断,前面全量重算一遍。
中段全量排序:必须看完全部数据才能下结论,纯憋内存。

改法很直接:UDF 换成原生表达式,collect 挪到落盘后,过滤尽量往前放。验收也别用干净小样本,抽点带脏数据的生产样本对账。

改完效果立竿见影:内存峰值降到原来的十分之一以下,处理时间从 45 分钟级缩到 18 分钟级。

别迷信“流式”两个字,你得盯住它到底生效没。

原文从 dev 到 prod,我按官方文档做,结果卡在哪,最后怎么解决
作者提示: 个人观点,仅供参考
江苏,3小时前,

相关学习资料