Python Pyspark:获取列的最常用值?

Python Pyspark:获取列的最常用值?,python,pyspark,rdd,pyspark-sql,putty,Python,Pyspark,Rdd,Pyspark Sql,Putty,我需要能够使用Pyspark获得列的最常见值 在本例的Day列中,我想要得到的结果是Monday,因为它比beday和beday多 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.ta

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

在本例的
Day
列中,我想要得到的结果是
Monday
,因为它比
beday
beday

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的新手,所以解释越多越好。我读过文档,但很难理解。谢谢。

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

Day_count = d.groupby('Day').count()
Day_count.orderBy(desc('count')).take(1)
此代码将为您提供“日”列的模式及其出现时间