PySpark实战:DataFrame去重处理
来自CloudWiki
介绍
数据集中,有可能存在重复的数据。
此时在查询时,根据需要有可能要进行去重处理。
代码
import findspark findspark.init() ############################################## from pyspark.sql import SparkSession spark = SparkSession.builder \ .master("local[1]") \ .appName("RDD Demo") \ .getOrCreate(); sc = spark.sparkContext ############################################# a = [ ('01','张三', '男',32,5000), ('01','李四', '男',33,6000), ('01','王五', '女',38,5500), ('02','Jack', '男',42,7000), ('02','Smith', '女',27,6500), ('02','Lily', '女',45,9500), ('02','Lily', '女',45,9500) ] rdd = sc.parallelize(a) peopleDf = spark.createDataFrame(rdd,\ "deptId:string,name:string,gender:string,age:int,salary:int") #['deptId', 'name', 'gender', 'age', 'salary'] print(peopleDf.columns) peopleDf.distinct().show() # +------+-----+------+---+------+ # |deptId| name|gender|age|salary| # +------+-----+------+---+------+ # | 01| 王五| 女| 38| 5500| # | 02|Smith| 女| 27| 6500| # | 01| 李四| 男| 33| 6000| # | 02| Lily| 女| 45| 9500| # | 02| Jack| 男| 42| 7000| # | 01| 张三| 男| 32| 5000| # +------+-----+------+---+------+ ##############################################
输出
['deptId', 'name', 'gender', 'age', 'salary'] +------+-----+------+---+------+ |deptId| name|gender|age|salary| +------+-----+------+---+------+ | 01| 王五| 女| 38| 5500| | 02|Smith| 女| 27| 6500| | 01| 李四| 男| 33| 6000| | 02| Lily| 女| 45| 9500| | 02| Jack| 男| 42| 7000| | 01| 张三| 男| 32| 5000|