java - 如何对两个 Apache Spark JavaPairRDD 求和?

标签 java apache-spark

我有以下 JavaPairRDD,代表每个客户的订单数量:

JavaPairRDD<String, Integer> customersToOrderCountRDD1 = ...

JavaPairRDD<String, Integer> customersToOrderCountRDD2 = ...

第一个是从 Cassandra 中的表中检索的,第二个是从外部 Web API 中检索的。

计算这两个 RDD 的组合值的最有效方法是什么,换句话说,获取每个客户的总订单数:例如,如果我在 RDD 中有以下数据集:

customersToOrderCountRDD1: (email1@email.com, 3) (email2@email.com, 4)
customersToOrderCountRDD2: (email1@email.com, 1) (email2@email.com, 2)

得到:

customersToTotalOrderCount: (email1@email.com, 4) (email2@email.com, 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)

关于java - 如何对两个 Apache Spark JavaPairRDD 求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34266022/

相关文章:

java - 如何比较两个java数组的前n个字节?

scala - Dataproc 参数未在 spark 提交上读取

scala - 当对中的顺序不相关时,获取 RDD 中对的唯一值

apache-spark - 从案例类生成 Spark StructType/Schema

python - 设置 PYSPARK_SUBMIT_ARGS 后 PySpark 在 Jupyter 中失败

java - 从 Socket 读取行并将每行放入 BlockingQueue

Java快速文件服务器(通过HTTP的静态文件)

java线程暂停、优雅结束并中止

java - 如何在DTO模型中实现JsonNode类型的字段

elasticsearch - 如何使用Apache Spark遍历Elasticsearch源?