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

使用PySpark toPandas()转换含布尔列DataFrame时遇numpy报错求助

解决PySpark DataFrame调用toPandas()时的numpy.bool属性错误

这个错误是因为numpy 1.24及以上版本移除了numpy.bool属性,而你使用的PySpark版本(低于3.3.0)还在依赖这个旧属性,导致类型转换时触发报错。

优先推荐的解决方案(无需手动转换列类型)

  • 升级PySpark到3.3.0及以上版本:这些版本已经适配了numpy的API变化,能正常处理boolean列转Pandas的逻辑。
  • 降级numpy到1.23.x版本:执行命令:
    pip install numpy==1.23.5 --force-reinstall
    
    降级后PySpark的旧版本就能正常调用toPandas()。

临时 workaround(手动转换列类型)

如果暂时无法升级/降级,可以手动将boolean列转换为int类型(False→0,True→1),转成Pandas后再按需转回bool类型:

from pyspark.sql.functions import col

# PySpark端转换为int类型
df = df.withColumn("pass", col("pass").cast("int"))

# 转成Pandas后再转回bool(可选)
df_pandas = df.toPandas()
df_pandas["pass"] = df_pandas["pass"].astype(bool)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 02:33:22