PySpark :基于多个条件筛选数据框 |
您所在的位置:网站首页 › excel2022多条件筛选 › PySpark :基于多个条件筛选数据框 |
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 |