PySpark 两种常用操作:isin 和 join
在本文中,我们将介绍 PySpark 中的两种常用操作:isin 和 join。这是在处理数据时经常遇到的两个常见问题。
阅读更多:PySpark 教程
isin 操作
isin 是一种用于筛选特定值的操作。它允许我们从一个数据集中筛选出包含特定值的行或者列。isin 操作通常用于过滤数据。
下面是一个示例,说明如何使用 isin 操作:
from pyspark.sql import SparkSession
# 创建 SparkSession
spark = SparkSession.builder.getOrCreate()
# 创建一个 DataFrame
data = [("Alice", 23),
("Bob", 27),
("Charlie", 25),
("David", 21)]
df = spark.createDataFrame(data, ["name", "age"])
# 使用 isin 操作筛选出年龄为 23 和 25 的行
result = df.filter(df.age.isin(23, 25))
result.show()
输出结果:
+-------+---+
| name|age|
+-------+---+
| Alice| 23|
|Charlie| 25|
+-------+---+
从以上示例可以看出,isin 操作可以直接在过滤条件中使用。在这个例子中,我们筛选出了年龄为 23 和 25 的人员信息。
join 操作
join 是一种用于合并两个数据集的操作。它通过共同的列将两个数据集连接在一起。join 操作通常用于数据集之间的关联查询和数据融合。
下面是一个示例,说明如何使用 join 操作:
from pyspark.sql import SparkSession
# 创建 SparkSession
spark = SparkSession.builder.getOrCreate()
# 创建两个 DataFrame
data1 = [("Alice", 23),
("Bob", 27),
("Charlie", 25),
("David", 21)]
data2 = [("Alice", "Engineer"),
("Bob", "Doctor"),
("Charlie", "Teacher"),
("Eve", "Lawyer")]
df1 = spark.createDataFrame(data1, ["name", "age"])
df2 = spark.createDataFrame(data2, ["name", "profession"])
# 使用 join 操作将两个 DataFrame 合并
result = df1.join(df2, "name", "inner")
result.show()
输出结果:
+-------+---+----------+
| name|age|profession|
+-------+---+----------+
| Alice| 23| Engineer|
|Charlie| 25| Teacher|
| Bob| 27| Doctor|
+-------+---+----------+
从以上示例可以看出,join 操作使用了两个数据集之间的共同列(在这个例子中是 “name”)来合并两个 DataFrame。通过 inner join,我们筛选出了在两个 DataFrame 中共同存在的人员信息。
总结
在本文中,我们介绍了 PySpark 中的两种常用操作:isin 和 join。isin 操作用于筛选特定值,而 join 操作用于合并数据集。这两种操作在数据处理中非常常见,能够帮助我们轻松处理大规模的数据。无论是筛选还是合并,PySpark 都提供了简洁而高效的方法来处理数据,使得我们能够更好地进行数据分析和挖掘。因此,在使用 PySpark 进行数据处理时,熟练掌握这两种操作是非常重要的。
希望本文对你理解和使用 PySpark 的 isin 和 join 操作有所帮助!
极客教程