使用PyArrow时Jupyter内核崩溃:true_count触发异常
PyArrow布尔数组
true_count触发Jupyter内核崩溃的解决办法 问题根源
这是PyArrow部分旧版本的已知底层bug:当布尔数组包含True值时,访问true_count属性会触发内存访问异常,直接导致Jupyter内核终止;而false_count不受影响是因为其底层实现逻辑不同,未触发该bug。
可行解决方案
1. 升级PyArrow至最新稳定版
这是最彻底的解决方式,新版本已经修复了这类内存问题。执行升级命令:
pip install --upgrade pyarrow
升级完成后重新运行你的代码,true_count就能正常返回结果了。
2. 临时替代方法(无法升级时)
如果暂时无法升级PyArrow,可以用pyarrow.compute.sum()来替代true_count——PyArrow中布尔值会被隐式转换为数值(True=1,False=0),求和结果与true_count完全一致:
import pyarrow as pa import pyarrow.compute as pc bad_array = pa.array([5.25,5.11,7.1,3.111,-1.2]) boolean_mask = pc.less(bad_array, pa.scalar(0)) # 替代true_count的写法 true_count = pc.sum(boolean_mask).as_py() print(true_count) # 输出:1
3. 验证修复效果
完成升级或替换代码后,测试原逻辑:
boolean_mask.true_count # 正常返回1,内核不再崩溃
内容的提问来源于stack exchange,提问作者cosmic_ocean
相关产品推荐
相关产品推荐

