我有以下JavaPairRDD,它们代表每个客户的订单数量:
JavaPairRDD<String, Integer> customersToOrderCountRDD1 = ...
JavaPairRDD<String, Integer> customersToOrderCountRDD2 = ...
从Cassandra中的表中检索第一个,从外部Web API检索第二个。
计算这两个RDD的组合值的最有效方法是什么,换句话说,获取每个客户的总订单数:例如,如果我在RDD中有以下数据集:
customersToOrderCountRDD1: ([email protected], 3) ([email protected], 4)
customersToOrderCountRDD2: ([email protected], 1) ([email protected], 2)
要得到:
customersToTotalOrderCount: ([email protected], 4) ([email protected], 6)
请参阅“使用键值对”部分和union / reduceByKey API: http://spark.apache.org/docs/latest/programming-guide.html#working-with-key-value-pairs
customersToOrderCountRDD1.union(customersToOrderCountRDD2).reduceByKey((a, b) -> a + b)