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

PySpark中为DataFrame新增行内大于0值计数列报错求助

问题解决:PySpark统计行内大于0值的数量

错误原因

你的代码遍历了df.columns,其中包含字符串类型的Category列,将字符串与数字0进行比较会触发类型不匹配错误。

正确解决方案

只需排除Category列,仅对三个子分类列进行统计:

步骤1:导入依赖模块

from functools import reduce
from pyspark.sql import functions as F

步骤2:修改代码统计目标列

# 筛选出所有子分类列(或直接指定列名)
subcategory_columns = [col for col in df.columns if col.startswith("Subcategory")]

df = df.withColumn(
    "Count",
    reduce(add, [F.when(F.col(c) > 0, 1).otherwise(0) for c in subcategory_columns])
)

说明

  • 我们只针对Subcategory 1、Subcategory 2、Subcategory 3这三列做大于0的判断,避免了字符串列的类型冲突。
  • 运行后将得到你期望的输出:每行统计出对应子分类中大于0的值的数量,新增为Count列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 09:02:10