【问题标题】:PySpark: How to count the number of distinct values from two columns?PySpark:如何计算两列中不同值的数量?
【发布时间】:2021-08-05 20:57:09
【问题描述】:

我有一个包含两列 id1, id2 的 DataFrame,我想要计算这两列不同值的数量。本质上这是count(set(id1+id2))

如何使用 PySpark 做到这一点?

谢谢!

请注意,这不是重复的,因为我希望 PySpark 计算 count()。当然可以获取id1_distinctid2_distinct 两个列表并将它们放在set() 中,但在我看来,在处理大数据时这不是正确的解决方案,而且它并不是真正符合PySpark 精神

【问题讨论】:

    标签: pyspark


    【解决方案1】:

    您可以使用union 将两列合二为一,得到countDistinct

    import pyspark.sql.functions as F
    
    cnt = df.select('id1').union(df.select('id2')).select(F.countDistinct('id1')).head()[0]
    

    【讨论】:

      猜你喜欢
      • 2017-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多