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

如何在PySpark DataFrame中为列分配布尔值True/False

PySpark DataFrame添加布尔列报错的解决方法
  • 报错根源:withColumn的第二个参数必须是Column类型对象,直接传入Python原生布尔值True不符合参数要求,因此触发AssertionError: col should be Column。
  • 正确实现方式:使用lit()函数包裹布尔值,它会将Python原生布尔值转换为PySpark的Column对象,且默认就是布尔类型,并非字符串:
    from pyspark.sql.functions import lit
    
    df = df.withColumn('my_column_name', lit(True))
    
  • 关于你提到的col(BooleanType(True)):这种写法不成立,col()函数用于引用已存在的列名,BooleanType是数据类型定义类,二者不能这样组合。如果需要显式指定类型,可这样写:
    from pyspark.sql.functions import lit
    from pyspark.sql.types import BooleanType
    
    df = df.withColumn('my_column_name', lit(True).cast(BooleanType()))
    
    不过一般无需显式转换,lit(True)本身生成的就是布尔类型的Column。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 15:44:53