Table of Contents
一. 需求
我们使用pyspark的Dataframe的时候,经常会遇到求 差集、交集 、并集。
虽然这个需求可以通过Spark SQL来实现,但是如果列比较多,使用Spark SQL实现也是比较麻烦的。
二. 解决方案
2.1 数据准备
代码:
from pyspark.sql import SparkSession spark = SparkSession. \ Builder(). \ appName('local'). \ master('local'). \ getOrCreate() sentenceDataFrame = spark.createDataFrame(( (1, "asf"), (2, "2143"), (3, "rfds") )).toDF("label", "sentence") sentenceDataFrame.show() sentenceDataFrame1 = spark.createDataFrame(( (1, "asf"), (2, "2143"), (4, "f8934y") )).toDF("label", "sentence") sentenceDataFrame1.show()
测试记录:

2.2 差集
代码:
#差集 subtract newDF = sentenceDataFrame.select("sentence").subtract(sentenceDataFrame1.select("sentence")) newDF.show() newDF = sentenceDataFrame.subtract(sentenceDataFrame1) newDF.show()
测试记录:

2.3 交集
代码:
#交集 intersect newDF_intersect = sentenceDataFrame1.select("sentence").intersect(sentenceDataFrame.select("sentence")) newDF_intersect.show() newDF_intersect = sentenceDataFrame1.intersect(sentenceDataFrame) newDF_intersect.show()
测试记录:

2.4 并集
代码:
#并集 union newDF_union = sentenceDataFrame.select("sentence").union(sentenceDataFrame1.select("sentence")) newDF_union.show() newDF_union = sentenceDataFrame.union(sentenceDataFrame1) newDF_union.show()
测试记录:

2.5 并集 +去重
代码:
#并集 +去重 newDF_union = sentenceDataFrame.select("sentence").union(sentenceDataFrame1.select("sentence")).distinct() newDF_union.show() newDF_union = sentenceDataFrame.union(sentenceDataFrame1).distinct() newDF_union.show()
测试记录:

参考:
1.https://blog.csdn.net/m0_37442062/article/details/87988751
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




