最频繁的值(模式),我得到了一个RDD与此类似查找每个变量
color category
green a
green b
red a
orange a
green b
red d
green c
red d
green e
而且我试图找到每种颜色的最常见的类别。 事情是这样的:
[green, b] : 2
[red, d ] : 2
[orange, a] : 1
我已经使用
rdd.countByValue()
后有中途将返回在这种情况下,像这样的词典:
(color=u'green', category=u'a'): 1
(color=u'green', category=u'b'): 2
(color=u'green', category=u'c'): 1
(color=u'green', category=u'e'): 1
(color=u'red', category=u'a'): 1
(color=u'red', category=u'd'): 2
(color=u'orange', category=u'a'): 1
从这一步我不知道如何获得每种颜色最频繁的类别。 在此先感谢。
编辑:我试图使用contentDF.groupBy('color').agg({'category' : 'max'}).collect()
不同的方法,但我相信agg
参数是错误的,因为它是给我整个表的整体最大值。有什么建议么?我觉得我正在接近!
编辑:我仍然在寻找解决方案... 现在我有这样的一个表:
color category frequency
green a 1
green b 2
green c 1
green e 1
red a 1
red d 2
orange a 1
任何人都可以提出一个星火SQL查询来选择每个颜色组的最大价值?
它是否适用于RDD对象?我尝试过,并没有工作。现在,我正在使用这种方法: 我正在得到类似于我想要的内容。我认为agg参数是错误的。 'contentDF'是表 – user3276768
我编辑它你现在可以尝试 – Hackaholic