我试图使用combineByKey来获得和countByKey相同的结果。
scala> ordersMap.take(5).foreach(println)
(CLOSED,1)
(PENDING_PAYMENT,2)
(COMPLETE,3)
(CLOSED,4)
(COMPLETE,5)
这是我的输入,我想使用combineByKey来得到countByKey的输出结果。
countByKey的输出结果(正确):
PAYMENT_REVIEW 729
CLOSED 7556
SUSPECTED_FRAUD 1558
PROCESSING 8275
COMPLETE 22899
PENDING 7610
PENDING_PAYMENT 15030
ON_HOLD 3798
CANCELED 1428
我已经使用了combineByKey。
val combine = ordersMap.combineByKey( x => 1 , (a:Int ,v) => a +1 , (a : Int,v : Int) => a +1 )
但是我得到了意外的结果,不确定原因。
combineByKey 的结果
(PENDING_PAYMENT,7600)
(CLOSED,3878)
(CANCELED,699)
(PAYMENT_REVIEW,368)
(PENDING,3764)
(ON_HOLD,1896)
(PROCESSING,4100)
(SUSPECTED_FRAUD,773)
(COMPLETE,11372)
谢谢