📜  如何在 PySpark 中找到多列的不同值?

📅  最后修改于: 2022-05-13 01:54:30.134000             🧑  作者: Mango

如何在 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 中删除/删除重复元素。

示例 1:获取所有 Dataframe 的不同行。

蟒蛇3

dataframe.distinct().show()

输出:

示例 2:获取单列的不同值。



它可以通过使用数据框传递单个列名来完成。

蟒蛇3

dataframe.select('NAME').distinct().show()

输出:

示例 3:获取多列的不同值。

它可以通过将多个列名作为带有数据框的列表形式传递来完成。

蟒蛇3

dataframe.select('ID',"NAME").distinct().show()

方法 2:使用 dropDuplicates() 方法。

dropDuplicates() 用于删除在多个选定列上具有相同值的行。



示例 1:获取所有 Dataframe 的不同行。

蟒蛇3

dataframe.dropDuplicates().show()

输出:

示例 2:获取单列的不同值。

它可以通过使用数据框传递单个列名来完成。

蟒蛇3

dataframe.select("NAME").dropDuplicates().show()

输出:



示例 3:获取多个列的不同值。

它可以通过将多个列名作为带有数据框的列表形式传递来完成。

蟒蛇3

dataframe.dropDuplicates(["NAME","ID"]).select(["ID","NAME"]).show()

输出: