📅  最后修改于: 2023-12-03 15:08:14.500000             🧑  作者: Mango
在 PySpark 中,我们可以使用 select
方法选择数据框中的列,但是如何选择一系列行呢?这个问题可以使用 filter
方法来解决。
filter
方法可以根据给定的条件过滤出符合条件的行,其基本语法如下:
df.filter(column_name condition)
其中,column_name
表示要过滤的列名,condition
表示过滤条件。例如,要选择 age
列中大于 30 的行,可以使用以下代码:
df.filter(df["age"] > 30)
你也可以通过多个条件来过滤数据,例如:
df.filter((df["age"] > 30) & (df["gender"] == "male"))
between
方法可以使用给定的范围过滤出符合条件的行,其基本语法如下:
df.filter(df[column_name].between(start_value, end_value))
例如,要选择 age
列中 30 到 40 之间的行,可以使用以下代码:
df.filter(df["age"].between(30, 40))
isin
方法可以根据给定的列表过滤出符合条件的行,其基本语法如下:
df.filter(df[column_name].isin(list))
例如,要选择 gender
列中为 male
或 female
的行,可以使用以下代码:
df.filter(df["gender"].isin(["male", "female"]))
我们可以将以上三种方式组合起来使用,例如:
df.filter(df["age"].between(30, 40)).filter(df["gender"].isin(["male", "female"]))
以上代码将过滤出 age
列中 30 到 40 之间,并且 gender
列中为 male
或 female
的行。
现在你已经了解了如何从 PySpark 的数据框中选择一系列行,你可以根据自己的需求来过滤数据了。