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,它们将被评估为字符串而不是数字形式。所以你需要转换为浮点数才能得到正确答案。
我有以下功能:
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,它们将被评估为字符串而不是数字形式。所以你需要转换为浮点数才能得到正确答案。