PySpark :基于多个条件筛选数据框

您所在的位置:网站首页 excel2022多条件筛选 PySpark :基于多个条件筛选数据框

PySpark :基于多个条件筛选数据框

2024-07-16 05:19| 来源: 网络整理| 查看: 265

PySpark :基于多个条件筛选数据框

在本文中,我们将介绍如何使用PySpark在数据框中基于多个条件进行筛选。数据筛选是数据处理和分析中常用的操作之一,通过筛选可以从数据集中提取所需的数据子集。

阅读更多:PySpark 教程

PySpark简介

PySpark是一种基于Python的Spark编程接口,可用于大规模数据处理和分析。Spark是一个快速的、分布式的计算引擎,适合处理大规模的数据集。PySpark提供了Python编程语言的简洁和灵活性,与Spark强大的处理能力相结合,使得数据处理和分析变得更加高效和便捷。

创建数据框

在我们开始筛选之前,首先需要创建一个示例数据框。我们将使用SparkSession对象创建一个空数据框,并通过添加一些列和数据来填充它。以下是一个示例代码:

from pyspark.sql import SparkSession from pyspark.sql.types import StructType, StructField, StringType, IntegerType # 创建SparkSession对象 spark = SparkSession.builder.appName("Filter Example").getOrCreate() # 定义数据框的模式 schema = StructType([ StructField("name", StringType(), True), StructField("age", IntegerType(), True), StructField("gender", StringType(), True), StructField("city", StringType(), True) ]) # 创建空数据框 df = spark.createDataFrame([], schema) # 向数据框添加数据 data = [("Alice", 25, "Female", "New York"), ("Bob", 30, "Male", "San Francisco"), ("Charlie", 35, "Male", "Los Angeles"), ("David", 28, "Male", "Chicago"), ("Eva", 33, "Female", "New York")] for row in data: df = df.union(spark.createDataFrame([row], schema)) # 显示数据框内容 df.show()

运行以上代码,我们将得到一个包含姓名、年龄、性别和城市等列的数据框,如下所示:

+-------+---+------+-------------+ | name|age|gender| city| +-------+---+------+-------------+ | Alice| 25|Female| New York| | Bob| 30| Male|San Francisco| |Charlie| 35| Male| Los Angeles| | David| 28| Male| Chicago| | Eva| 33|Female| New York| +-------+---+------+-------------+ 基于单个条件筛选

首先,我们将展示如何使用PySpark基于单个条件对数据框进行筛选。我们可以使用filter方法或where方法来实现。以下示例演示了如何筛选出年龄大于30的行:

# 使用filter方法筛选年龄大于30的行 filtered_df = df.filter(df.age > 30) # 或者使用where方法 filtered_df = df.where(df.age > 30) # 显示筛选结果 filtered_df.show()

运行以上代码,我们将得到一个年龄大于30的子集,如下所示:

+-------+---+------+-------------+ | name|age|gender| city| +-------+---+------+-------------+ |Charlie| 35| Male| Los Angeles| | Eva| 33|Female| New York| +-------+---+------+-------------+ 基于多个条件筛选

接下来,我们将介绍如何使用PySpark基于多个条件对数据框进行筛选。我们可以使用&运算符和|运算符来组合多个条件。以下示例演示了如何筛选出年龄在25到35之间且性别为女性的行:

# 使用&和|运算符筛选多个条件 filtered_df = df.filter((df.age >= 25) & (df.age


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3