【问题标题】:How to subset/create a new Pyspark DF based on values from two columns如何根据两列中的值子集/创建新的 Pyspark DF
【发布时间】:2021-03-26 17:06:17
【问题描述】:

我们如何从以下df 中过滤CID 的值,其中IDTS 的组合相同。

df =

ID CID TS
A C1 t1
A C2 t1
A C3 t2
B C4 t2

需要输出 DF

CID
C1
C2

谢谢。

【问题讨论】:

    标签: apache-spark pyspark apache-spark-sql


    【解决方案1】:

    可以获取每个分区的ID和TS的计数,过滤计数大于等于2的行。

    from pyspark.sql import functions as F, Window 
    
    df2 = df.withColumn(
        'cnt', 
        F.count('*').over(Window.partitionBy('ID', 'TS'))
    ).filter('cnt >= 2').select('CID')
    
    df2.show()
    +---+
    |CID|
    +---+
    | C1|
    | C2|
    +---+
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-13
      • 2023-01-23
      • 2022-01-07
      • 2021-01-02
      • 2021-09-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多