【问题标题】:Pyspark: Getting the most common value of a column?Pyspark:获取列的最常见值?
【发布时间】:2019-12-01 20:02:25
【问题描述】:

我需要能够使用 Pyspark 获取列的最常见值。

在这个来自Day 列的示例中,我想要得到的结果是Monday,因为它出现的次数超过了TuesdayWednesday

Row 1: Monday
Row 2: Tuesday
Row 3: Wednesday
Row 4: Monday

我想我必须做一些分组和计数,但整个项目应该完成的方式对我来说很奇怪。

这是我试图解决这个问题的示例代码。

d = d.rdd
d = d.map(lambda row: (row.day.year, row.number))
print(d.take(2000))
d_maxNum = d.reduceByKey(lambda max_num, this_num: this_num if this_num > max_num else max_num)
print(d_maxNum.collect())

我是 Pyspark 的新手,所以解释越多越好。我已经阅读了文档,但我很难理解它。谢谢。

【问题讨论】:

    标签: python pyspark rdd pyspark-sql putty


    【解决方案1】:

    假设您的数据框名称为“d”,而您想要的列为“Day”,那么您应该这样做:

    Day_count = d.groupby('Day').count()
    Day_count.orderBy(desc('count')).take(1)
    

    此代码将为您提供“日”列的模式及其出现时间。

    【讨论】:

      猜你喜欢
      • 2017-11-08
      • 1970-01-01
      • 2023-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-21
      • 2010-09-25
      • 1970-01-01
      相关资源
      最近更新 更多