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

如何创建含40亿行、values列从0到40亿的LazyFrame?

解决方法
  • 用eager=True生成40亿条数据会直接耗尽内存,进程被终止是必然结果——40亿个int64类型数据需要32GB内存,远超普通机器的承载上限。
  • 直接把pl.arange(eager=False)作为字典值传入LazyFrame,会被当成普通对象存储,自然得不到预期的列数据。

正确的写法是在LazyFrame内部用表达式定义values列,让Polars延迟计算这个序列,代码如下:

import polars as pl

lf = pl.LazyFrame().with_columns(pl.arange(0, 4_000_000_000).alias("values"))
# 按需触发计算,比如取前10条数据:
print(lf.head(10).collect())

这么写的优势:

  • 不会提前生成全部数据,仅在调用collect()或其他触发计算的方法时,按需生成对应的数据量,彻底避免内存溢出问题。
  • 生成的values列是标准数值类型,而非object类型。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 04:49:54