【问题标题】:FInd first non zero element in pyspark dataframe在 pyspark 数据框中找到第一个非零元素
【发布时间】:2021-10-08 09:31:23
【问题描述】:

我正在使用 pyspark 数据帧并尝试查看是否有一种方法可以提取我在 spark 数据帧中的第一个非零元素的索引。我自己添加了索引列,因为 pyspark 不支持它,而不是 pandas。

【问题讨论】:

标签: python dataframe pyspark


【解决方案1】:

假设您的数据框如下所示:

df.show()
+---+-----+                                                                     
|idx|value|
+---+-----+
|  0|    0|
|  1|    0|
|  2|    1|  # <-- We want this one
|  3|    2|
|  4|    3|
|  5|    4|
+---+-----+

您可以使用min 轻松实现此目的:

from pyspark.sql import functions as F

df.where(F.col("value") != 0).select(F.min("idx")).show()

row_number

from pyspark.sql import functions as F, Window

df.where(F.col("value") != 0).withColumn(
    "rwnb", F.row_number().over(Window.orderBy("idx"))
).where(F.col("rwnb") == 1).select("idx").show()
+---+
|idx|
+---+
|  2|
+---+

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-17
    • 1970-01-01
    相关资源
    最近更新 更多