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

如何在Polars中并行化str.split操作

让Polars拆分逗号分隔列时利用全部CPU的方案

核心优化步骤

  • 显式配置全局线程数
    在代码开头添加线程数设置,强制Polars使用系统所有可用核心:

    pl.set_threads(pl.available_parallelism())
    

    pl.available_parallelism()会自动检测当前系统的CPU核心数量,无需手动指定数值。

  • 保持矢量化操作
    你当前使用的pl.col("tags").str.split(",")是Polars原生矢量化操作,本身支持并行执行,不要改成apply这类单线程逻辑,避免破坏并行能力。

  • 读取文件时启用内存映射
    虽然不直接提升并行度,但内存映射可以减少内存拷贝开销,让CPU资源更集中在计算上:

    df = pl.read_ipc("items.fth", memory_map=True)
    

调整后的完整代码

import polars as pl

# 配置使用全部CPU线程
pl.set_threads(pl.available_parallelism())

# 内存映射读取未压缩Feather文件
df = pl.read_ipc("items.fth", memory_map=True)

# 并行拆分tags列
tags_df = df.select(pl.col("tags").str.split(","))

补充说明

如果你的tags列存在大量极短或格式高度统一的字符串,Polars可能因并行开销大于收益而自动用单线程执行,但1000万行的数据集基本不会触发这种优化。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 23:52:08