湖仓与存储🔥9.0

Polars 2.0:为什么join不再保持行序

原标题: Polars 2.0:为什么join不再保持行序

DevToData·2026/10/8 06:40:40🔗 原文

📋总体概括

Polars 2.0(2026年10月6日发布)将lazy查询collect()的默认执行引擎切换为streaming engine,且默认开启out-of-core处理(内存占用约80%时落盘,默认上限64GB)。但streaming引擎不再保证join、group_by、unpivot的输入行序,除非显式设置maintain_order。这对逐行比对输出、按位置读写文件的下游流水线是隐性行为变更,可能导致不同机器产出不同结果,升级需重点排查。

⚡关键信息

  • ▸Polars 2.0于2026年10月6日发布,collect()默认改用streaming引擎执行
  • ▸join、group_by、unpivot默认不再保证输入行序,需显式设置maintain_order
  • ▸out-of-core处理默认开启,内存占用约80%时开始溢写磁盘,默认上限64GB
  • ▸逐行比对或按位置读写文件的下游步骤可能在不同机器上得到不同结果

🔥犀利点评

这是教科书级的『默认值即架构』案例:没人读变更日志里的maintain_order,直到某天两个环境输出对不上。把流式和乱序绑定在同一个默认开关里,性能换确定性,省了用户内存却埋了隐性坑。凡是写报告、跑回归比对、按位置join的流水线,升级前请先grep自己的collect()。官方省了一行文档,用户可能赔一夜排查。

本文由本站自动聚合,以下为原始来源:前往 DevToData 阅读全文 →