简体   繁体   English

在 Apache Spark 中加入两个 RDD 列

[英]Joining two RDDs column in Apache Spark

This is the already asked question but I could not understand the answers properly.这是已经提出的问题,但我无法正确理解答案。

I have two RDDs with same number of columns and same number of records我有两个具有相同列数和相同记录数的 RDD

RDD1(col1,col2,col3)

and

RDD2(colA,colB,colC)

I need to join them as following :我需要加入他们如下:

RDD_FINAL(col1,col2,col3,colA,colB,colC)

There is no key to perform a join between records but they are in order which means the first record of RDD1 is corresponded to first record of RDD2.记录之间没有执行连接的key ,但它们是有序的,这意味着 RDD1 的第一条记录对应于 RDD2 的第一条记录。

您可以使用zipWithIndex方法将行的索引添加为两个 RDD 的键,并通过键连接它。

Adding code snippet for Alfilercio's example.为 Alfilercio 的示例添加代码片段。

JavaRDD<col1,col2,col3> rdd1 = ...
JavaPairRDD<Long, Tuple3<col1,col2,col3>> pairRdd1 = rdd1.zipWithUniqueId().mapToPair(pair -> new Tuple2<>(pair._2(),pair._1());

JavaRDD<colA,colB,colC> rdd2 = ...
JavaPairRDD<Long, Tuple3<colA,colB,colC>> pairRdd2 = rdd2.zipWithUniqueId().mapToPair(pair -> new Tuple2<>(pair._2(),pair._1());

JavaRDD<Tuple2<Tuple3<col1, col2, col3>, Tuple3<colA,colB,colC>>> mappedRdd = pairRdd1.join(pairRdd2).map(pair -> pair._2());

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM