pySpark .reduceByKey(min)/max 奇怪的行为

pySpark .reduceByKey(min)/max weird behavior

我有以下功能:

minTotal = numRDD.reduceByKey(min).collect()
maxTotal = numRDD.reduceByKey(max).collect()

我数据集中的一个异常行为样本:

(18, [u'300.0', u'1000.0', u'300.0', u'300.0', u'300.0', u'300.0', u'300.0', u'300.0', u'1000.0', u'300.0', u'300.0', u'300.0', u'300.0', u'300.0', u'300.0', u'300.0', u'300.0', u'300.0', u'300.0', u'300.0', u'300.0', u'300.0', u'300.0', u'300.0', u'300.0', u'300.0', u'300.0', u'300.0', u'300.0', u'300.0', u'300.0', u'300.0', u'300.0', u'300.0', u'300.0', u'300.0', u'300.0', u'300.0', u'300.0', u'300.0']

最小值报告为:1000 最大为 300

对我来说很奇怪,我的所有其他 key/values 报告都正确,除了这个。不确定这里发生了什么。

忘记了它们是 unicode,它们将被评估为字符串而不是数字形式。所以你需要转换为浮点数才能得到正确答案。