美文网首页
pyspark案例系列8-Dataframe的求差集、交集 、并

pyspark案例系列8-Dataframe的求差集、交集 、并

作者: 只是甲 | 来源:发表于2022-06-14 09:01 被阅读0次

    一. 需求

    我们使用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()
    

    测试记录:

    image.png

    2.2 差集

    代码:

    #差集    subtract
    newDF = sentenceDataFrame.select("sentence").subtract(sentenceDataFrame1.select("sentence"))
    newDF.show()
    
    newDF = sentenceDataFrame.subtract(sentenceDataFrame1)
    newDF.show()
    

    测试记录:

    image.png

    2.3 交集

    代码:

    #交集   intersect
    newDF_intersect = sentenceDataFrame1.select("sentence").intersect(sentenceDataFrame.select("sentence"))
    newDF_intersect.show()
    
    newDF_intersect = sentenceDataFrame1.intersect(sentenceDataFrame)
    newDF_intersect.show()
    

    测试记录:

    image.png

    2.4 并集

    代码:

    #并集  union
    newDF_union = sentenceDataFrame.select("sentence").union(sentenceDataFrame1.select("sentence"))
    newDF_union.show()
    
    newDF_union = sentenceDataFrame.union(sentenceDataFrame1)
    newDF_union.show()
    

    测试记录:

    image.png

    2.5 并集 +去重

    代码:

    #并集 +去重
    newDF_union = sentenceDataFrame.select("sentence").union(sentenceDataFrame1.select("sentence")).distinct()
    newDF_union.show()
    
    
    newDF_union = sentenceDataFrame.union(sentenceDataFrame1).distinct()
    newDF_union.show()
    

    测试记录:

    image.png

    参考:

    1.https://blog.csdn.net/m0_37442062/article/details/87988751

    相关文章

      网友评论

          本文标题:pyspark案例系列8-Dataframe的求差集、交集 、并

          本文链接:https://www.haomeiwen.com/subject/xgnslltx.html