📜  PySpark DataFrame - 过滤器(1)

📅  最后修改于: 2023-12-03 15:04:02.022000             🧑  作者: Mango

PySpark DataFrame - 过滤器

在 PySpark 中,DataFrame 是一种强大的数据结构,可以让开发者以类似于 SQL 的方式来操作和分析数据。过滤器是 DataFrame 中常用的操作之一,它允许您根据特定条件筛选数据行。

创建 DataFrame

首先,让我们来创建一个示例 DataFrame,以便我们可以在其上应用过滤器操作。下面是创建 DataFrame 的示例代码:

from pyspark.sql import SparkSession

# 创建 SparkSession 对象
spark = SparkSession.builder.getOrCreate()

# 示例数据
data = [("Alice", 25), ("Bob", 30), ("Charlie", 35), ("David", 40)]

# 创建 DataFrame
df = spark.createDataFrame(data, ["Name", "Age"])

# 显示 DataFrame
df.show()

上述代码创建了一个包含姓名和年龄的 DataFrame,并显示了其内容。您可以根据自己的需要替换为自己的数据。

过滤器操作

PySpark 提供了许多用于过滤 DataFrame 的方法。下面是几个常用的过滤器操作:

使用字符串条件

您可以使用字符串条件来过滤 DataFrame。下面的代码演示了如何筛选出年龄大于 30 岁的人:

# 过滤年龄大于 30 的人
filtered_df = df.filter("Age > 30")

# 显示过滤后的 DataFrame
filtered_df.show()
使用列条件

除了字符串条件外,您还可以使用 DataFrame 中的列来设置过滤条件。下面的代码展示了如何使用列条件来筛选出年龄大于 30 岁的人:

from pyspark.sql.functions import col

# 使用列条件过滤
filtered_df = df.filter(col("Age") > 30)

# 显示过滤后的 DataFrame
filtered_df.show()
组合条件

您还可以组合多个过滤条件来进一步筛选 DataFrame。下面的代码展示了如何同时筛选出年龄大于 30 岁且姓名以字母 "A" 开头的人:

# 组合条件过滤
filtered_df = df.filter((col("Age") > 30) & (col("Name").startswith("A")))

# 显示过滤后的 DataFrame
filtered_df.show()
结论

过滤器是 PySpark DataFrame 中非常常用的操作,它允许您根据条件筛选数据行。本文介绍了如何使用字符串条件和列条件来设置过滤器,并演示了如何组合多个条件进行更复杂的筛选。希望这些信息对您在 PySpark 开发中的过滤器操作有所帮助。

以上就是有关 PySpark DataFrame 过滤器的介绍,希望能对您有所启发!