如何在 PySpark 中找到多列的不同值?
在本文中,我们将讨论如何在 PySpark 数据框中查找多列的不同值。
让我们创建一个示例数据框进行演示:
Python3
# importing module
import pyspark
# importing sparksession from pyspark.sql module
from pyspark.sql import SparkSession
# creating sparksession and giving an app name
spark = SparkSession.builder.appName('sparkdf').getOrCreate()
# list of employee data
data = [["1", "Tezas", "Google"],
["2", "Mohit Rawat", "Rakuten"],
["3", "rohith", "Geeksforgeeks"],
["4", "Nancy", "IBM"],
["1", "Raghav", "Wipro"],
["4", "Komal", "Amazon"]]
# specify column names
columns = ['ID', 'NAME', 'Company']
# creating a dataframe from the lists of data
dataframe = spark.createDataFrame(data, columns)
dataframe.show()
Python3
dataframe.distinct().show()
Python3
dataframe.select('NAME').distinct().show()
Python3
dataframe.select('ID',"NAME").distinct().show()
Python3
dataframe.dropDuplicates().show()
Python3
dataframe.select("NAME").dropDuplicates().show()
Python3
dataframe.dropDuplicates(["NAME","ID"]).select(["ID","NAME"]).show()
输出:
方法一:使用distinct()方法
distinct()方法用于从 DataFrame 中删除/删除重复元素。
Syntax: df.distinct(column)
示例 1:获取所有 Dataframe 的不同行。
蟒蛇3
dataframe.distinct().show()
输出:
示例 2:获取单列的不同值。
它可以通过使用数据框传递单个列名来完成。
蟒蛇3
dataframe.select('NAME').distinct().show()
输出:
示例 3:获取多列的不同值。
它可以通过将多个列名作为带有数据框的列表形式传递来完成。
蟒蛇3
dataframe.select('ID',"NAME").distinct().show()
方法 2:使用 dropDuplicates() 方法。
dropDuplicates() 用于删除在多个选定列上具有相同值的行。
Syntax: df.dropDuplicates()
示例 1:获取所有 Dataframe 的不同行。
蟒蛇3
dataframe.dropDuplicates().show()
输出:
示例 2:获取单列的不同值。
它可以通过使用数据框传递单个列名来完成。
蟒蛇3
dataframe.select("NAME").dropDuplicates().show()
输出:
示例 3:获取多个列的不同值。
它可以通过将多个列名作为带有数据框的列表形式传递来完成。
蟒蛇3
dataframe.dropDuplicates(["NAME","ID"]).select(["ID","NAME"]).show()
输出: