【Pyspark-驯化】一文搞懂Pyspark中dropDuplicates和sort的使用技巧
本次修炼方法请往下查看
欢迎莅临我的个人主页 这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合,智慧小天地!
相关内容文档获取 微信公众号
相关内容视频讲解 B站
博主简介:AI算法驯化师,混迹多个大厂搜索、推荐、广告、数据分析、数据挖掘岗位 个人申请专利40+,熟练掌握机器、深度学习等各类应用算法原理和项目实战经验。
技术专长: 在机器学习、搜索、广告、推荐、CV、NLP、多模态、数据分析等算法相关领域有丰富的项目实战经验。已累计为求职、科研、学习等需求提供近千次有偿|无偿定制化服务,助力多位小伙伴在学习、求职、工作上少走弯路、提高效率,近一年好评率100% 。
博客风采: 积极分享关于机器学习、深度学习、数据分析、NLP、PyTorch、Python、Linux、工作、项目总结相关的实用内容。
在处理大规模数据集时,经常需要对数据进行清洗和排序。PySpark提供了dropDuplicates和sort方法,分别用于删除重复的行和对数据进行排序。这些操作对于提高数据质量、优化查询性能和准备数据进行分析至关重要。
对于pyspark来讲,常用的就是sparkcontext类,一般都是先启动一个这样的程序才可以进行相应的操作,而SparkSession可以在不创建SparkConf,SparkContext或SQLContext的情况下创建SparkSession(它们封装在SparkSession中), 这个sparksession就是用来调取dataframe相关操作的类,具体的操作如下:
# 一般在进行spark-submit的.py文件在初始化的时候,需要创建spark对象,具体如下
from pyspark import SparkConf
from pyspark import SparkContext
from pyspark.sql import SparkSession
from pyspark.sql import SQLContext
from pyspark.sql import Row
from pyspark.sql.types import StructType
from pyspark.sql.types import StructField
from pyspark.sql.types import StringType
from pyspark.sql import functions as fn
from pyspark.sql import types as T
sc_conf = SparkConf().setAppName('b2b_fraud_data')
spark = SparkSession.builder.config(conf=sc_conf).enableHiveSupport().getOrCreate()
为了更加清楚的理解withcolumnsrename函数的中间结果,具体我们创建如下的数据对其进行操作,具体代码如下所示:
from pyspark.sql import Row
# 创建一个包含重复数据的数据集
data = [Row(id=1, name="Alice"), Row(id=2, name="Bob"), Row(id=1, name="Alice")]
df = spark.createDataFrame(data)
df.show()
+---+-----+
| id| name|
+---+-----+
| 1|Alice|
| 2| Bob|
| 1|Alice|
当有了数据后,我们对其进行重复值的删除,具体的代码如下所示:
# 删除重复的行
df_unique = df.dropDuplicates()
df_unique.show()
+---+-----+
| id| name|
+---+-----+
| 1|Alice|
| 2| Bob|
如果要对数据进行排序,具体的代码如下所示:
# 根据id列对数据进行升序排序
df_sorted = df_unique.sort("id")
df_sorted.show()
+---+-----+
| id| name|
+---+-----+
| 1|Alice|
| 2| Bob|
根据多个列进行排序,首先按id升序,然后按name降序,具体的操作代码如下所示:
df_sorted_multiple = df_unique.sort("id", "name", ascending=[True, False])
df_sorted_multiple.show()
+---+-----+
| id| name|
+---+-----+
| 1|Alice|
| 2| Bob|
dropDuplicates和sort是PySpark中两个非常有用的函数,它们允许用户在DataFrame中删除重复的行和对数据进行排序。通过本博客的代码示例,我们学习了如何使用这两个函数进行数据清洗和排序操作。希望这篇博客能够帮助你更好地理解dropDuplicates和sort的用法,并将其应用于数据处理任务中。