Spark中根据条件获取行索引

Gau*_*sal 3 apache-spark apache-spark-sql pyspark

假设我有一个 Spark DataFrame,如下所示。如何获取value0 处的行索引?

ID  | value
-------------
001 | 1
002 | 0
003 | 2
004 | 0
005 | 1
Run Code Online (Sandbox Code Playgroud)

我想要的行索引是 2 和 4。

Ram*_*jan 5

您可以使用filterselect来获取所需的索引

给定一个dataframeas

+---+-----+
|ID |value|
+---+-----+
|001|1    |
|002|0    |
|003|2    |
|004|0    |
|005|1    |
+---+-----+
Run Code Online (Sandbox Code Playgroud)

你可以执行以下操作

df.filter(df.value == 0).select(df.ID)
Run Code Online (Sandbox Code Playgroud)

这应该给你

+---+
|ID |
+---+
|002|
|004|
+---+
Run Code Online (Sandbox Code Playgroud)

您可以使用.flatMap(lambda x: x).collect()将上面选定的列转换dataframelist

我希望答案有帮助