gpt4 book ai didi

java - 如何通过键比较两个JavaPairRDD并比较值?

转载 作者:行者123 更新时间:2023-12-02 13:03:53 25 4
gpt4 key购买 nike

我想使用Java Spark根据两个JavaPairRDD的键进行比较,比较它们的值以查看相同的键是否具有完全相同的值。

现在,我只检查交集和并集的 count(),但这还不够,如下所示:

        JavaPairRDD<String, String> intersectionJavaPairRDD = hBaseJavaPairRDD.intersection(hiveJavaPairRDD);
JavaPairRDD<String, String> unionJavaPairRDD = hBaseJavaPairRDD.union(hiveJavaPairRDD).distinct();

if (intersectionJavaPairRDD.count() != unionJavaPairRDD.count()
|| hiveJavaPairRDD.count() != hBaseJavaPairRDD.count()) {
System.err.println(
"ERROR: SxS validation failed...");
System.exit(-1);
}

当每个值具有相同的键时,如何比较它们?

非常感谢!

最佳答案

我来自 scala,但我确实相信,通过一些语法更改,它也适用于 java。

我的想法是加入二人RDD s,然后比较两列值。

val isEquals = hBaseJavaPairRDD
.join(hiveJavaPairRDD)
.map {
case (id, (v1, v2)) => v1 == v2
}
.reduce(_ && _)

该解决方案背后的想法如下:

  1. 对于每个,我们输入第一个和第二个的值 RDD s 在同一行。这是通过 join 执行的操作。
  2. 映射结果(加入 RDD ),以便对于每一行我们输入 true如果两个值等于 false否则
  3. 然后应用 reduce在此映射 RDD 上的函数 将 AND 作为元素之间的二元运算。

应用 reduce函数返回true如果 加入 RDD 中的所有元素true所有值都相等false否则。

抱歉用scala回答,希望有帮助

关于java - 如何通过键比较两个JavaPairRDD并比较值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44211544/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com