Pyspark - 为每一行计算火花数据框中的非零列

维维克·杜达吉里

我有数据框,我需要在 Pyspark 中按行计算非零列的数量。

ID COL1 COL2 COL3
1  0    1    -1 
2  0    0     0 
3 -17   20    15
4  23   1     0

预期输出:

ID COL1 COL2 COL3 Count
1   0    1    -1    2
2   0    0     0    0
3  -17   20    15   3
4   23   1     0    1
拉克什·库马尔

有多种方法可以实现这一点,下面我列出了一种简单的方法 -

df = sqlContext.createDataFrame([
    [1,  0,    1,    -1], 
    [2,  0,    0,     0],
    [3, -17,   20,    15],
    [4,  23,   1,     0]], 
    ["ID", "COL1", "COL2", "COL3"]
)

#Check columns list removing ID columns
df.columns[1:]
['COL1', 'COL2', 'COL3']

#import functions
from pyspark.sql import functions as F

#Adding new column count having sum/addition(if column !=0 then 1 else 0)
df.withColumn(
    "count",
    sum([
            F.when(F.col(cl) != 0, 1).otherwise(0) for cl in df.columns[1:]
    ])
).show()


+---+----+----+----+-----+
| ID|COL1|COL2|COL3|count|
+---+----+----+----+-----+
|  1|   0|   1|  -1|    2|
|  2|   0|   0|   0|    0|
|  3| -17|  20|  15|    3|
|  4|  23|   1|   0|    2|
+---+----+----+----+-----+

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在pyspark [non pandas]中为数据框的每一行调用一个函数

来自分类Dev

遍历pyspark数据框的行,但将每一行都保留为一个数据框

来自分类Dev

如何在pyspark的数据框中的每一行中查找字符串

来自分类Dev

在Pyspark中转换数据框(同一行,不同列)中的列表

来自分类Dev

pyspark数据框获得第二最低值的每一行

来自分类Dev

在pyspark中为列表中的每一行获取元组的第一项

来自分类Dev

PySpark-从数据框删除第一行

来自分类Dev

如何有效地在Pyspark的数据帧的每一列上为每个最小值或最大值获取一行?

来自分类Dev

如何在pyspark数据框中的一行中执行regexp_replace?

来自分类Dev

pyspark对其他行进行每一行计算并获得最大值

来自分类Dev

从pySpark中的字典构建一行

来自分类Dev

在pyspark中旋转一行的值

来自分类Dev

PySpark 数据框:统一某些行

来自分类Dev

将每一行的值汇总为布尔值(PySpark)

来自分类Dev

Pyspark数据框列列出

来自分类Dev

Pyspark数据框中的条件

来自分类Dev

pyspark中的数据透视框

来自分类Dev

Pyspark数据框比较

来自分类Dev

Pyspark数据框SQL

来自分类Dev

解析pyspark数据框

来自分类Dev

计算Dataframe Pyspark中的行

来自分类Dev

Pyspark:如何用数组中的值替换每一行的值

来自分类Dev

过滤pyspark数据框中的行并创建一个包含结果的新列

来自分类Dev

在pyspark数据框中将非空值填充为1

来自分类Dev

Pyspark 数据框:计算列中的唯一值,与其他列中的值独立共存

来自分类Dev

如何在pyspark数据框中按ID用另一行的值替换空值?

来自分类Dev

Pyspark:需要显示数据框中每列的空/空值计数

来自分类Dev

使用pyspark检查数据框的所有列中是否存在大于零的值

来自分类Dev

Pyspark:基于所有列的减法/差异pyspark数据框

Related 相关文章

  1. 1

    在pyspark [non pandas]中为数据框的每一行调用一个函数

  2. 2

    遍历pyspark数据框的行,但将每一行都保留为一个数据框

  3. 3

    如何在pyspark的数据框中的每一行中查找字符串

  4. 4

    在Pyspark中转换数据框(同一行,不同列)中的列表

  5. 5

    pyspark数据框获得第二最低值的每一行

  6. 6

    在pyspark中为列表中的每一行获取元组的第一项

  7. 7

    PySpark-从数据框删除第一行

  8. 8

    如何有效地在Pyspark的数据帧的每一列上为每个最小值或最大值获取一行?

  9. 9

    如何在pyspark数据框中的一行中执行regexp_replace?

  10. 10

    pyspark对其他行进行每一行计算并获得最大值

  11. 11

    从pySpark中的字典构建一行

  12. 12

    在pyspark中旋转一行的值

  13. 13

    PySpark 数据框:统一某些行

  14. 14

    将每一行的值汇总为布尔值(PySpark)

  15. 15

    Pyspark数据框列列出

  16. 16

    Pyspark数据框中的条件

  17. 17

    pyspark中的数据透视框

  18. 18

    Pyspark数据框比较

  19. 19

    Pyspark数据框SQL

  20. 20

    解析pyspark数据框

  21. 21

    计算Dataframe Pyspark中的行

  22. 22

    Pyspark:如何用数组中的值替换每一行的值

  23. 23

    过滤pyspark数据框中的行并创建一个包含结果的新列

  24. 24

    在pyspark数据框中将非空值填充为1

  25. 25

    Pyspark 数据框:计算列中的唯一值,与其他列中的值独立共存

  26. 26

    如何在pyspark数据框中按ID用另一行的值替换空值?

  27. 27

    Pyspark:需要显示数据框中每列的空/空值计数

  28. 28

    使用pyspark检查数据框的所有列中是否存在大于零的值

  29. 29

    Pyspark:基于所有列的减法/差异pyspark数据框

热门标签

归档