📜  列表中的 pyspark 过滤器列 (1)

📅  最后修改于: 2023-12-03 14:50:13.467000             🧑  作者: Mango

列表中的 pyspark 过滤器列

在 PySpark 中,您可以使用“过滤”或条件筛选数据的方法。过滤器模式是一种实现此目的的有效方法。通过使用 Spark 过滤器列,您可以逐行执行逻辑,以确定是否包含在结果数据集中。在本文中,我们将介绍过滤器列的概念及其如何在 PySpark 中使用。

过滤器列

在 PySpark 中,过滤器列是一个包含特定条件表达式的列。该表达式将根据其返回值确定过滤器中的评估值,如果评估为 true,则行将包含在结果数据集中,否则将被排除。以下是一个示例代码片段,它演示了如何创建一个过滤器列:

from pyspark.sql.functions import col

filter_col = col("some_col") > 5

此代码片段使用 col 函数创建一个指向名为 some_col 的 Spark DataFrame 列的引用,并指定了一个条件表达式,该表达式检测列中的值是否大于 5。结果将是一个 PySpark 列变量,它可以在 DataFrame 过滤中使用。

在 PySpark 中使用过滤器列

您可以将过滤器列用于 PySpark DataFrame 的过滤方法,以筛选具有特定属性的行,并创建一个新的 DataFrame。以下是一个演示在 PySpark 中使用过滤器列的示例代码:

from pyspark.sql.functions import col

df = spark.createDataFrame([(5, "foo", "A"), (10, "bar", "B"), (15, "baz", "C")], ["num", "string", "extra"])

# 只显示 num 列大于 5 的行
filter_col = col("num") > 5
filtered_df = df.filter(filter_col)
filtered_df.show()

在此示例中,我们首先使用 SparkSession 的 createDataFrame 方法创建一个包含三个列的 DataFrame。然后,我们创建一个过滤器列,该列检查每个行中 num 列的值是否大于 5。最后,我们使用过滤器列来过滤 DataFrame 的行,只保留符合条件的行。

总结

PySpark 中的过滤器列是一种方便的方法,可用于筛选包含特定条件的数据。通过使用条件表达式定义的过滤器列,您可以快速生成新的 DataFrame,只包含一个子集的数据,您可以从中开始进一步分析和处理。