ApacheSpark:在java中作为主从读取两个文件(完全外部连接)

ApacheSpark:在java中作为主从读取两个文件(完全外部连接),java,join,apache-spark,reader,Java,Join,Apache Spark,Reader,我有两个输入文件-让我们称它们为主和从。基于一个公共键,我希望按顺序将它们连接起来(在另一侧保留空值的左和右) 所以基本上,最终结果是任何一种Java RDD <master record, slave record> 并且在另一个不存在的地方有空值 我不想使用冗长的操作,如排序、按键压缩或联接本身。我正在寻找一个自定义阅读器,我可以写,这样我就不必阅读这些文件单独和加入他们以后。关于我如何写它们有什么想法吗 谢谢 编辑:我不是在寻找现成的代码。简单的指导方针/大纲也有帮助我认

我有两个输入文件-让我们称它们为主和从。基于一个公共键,我希望按顺序将它们连接起来(在另一侧保留空值的左和右)

所以基本上,最终结果是任何一种Java RDD

<master record, slave record>

并且在另一个不存在的地方有空值

我不想使用冗长的操作,如排序、按键压缩或联接本身。我正在寻找一个自定义阅读器,我可以写,这样我就不必阅读这些文件单独和加入他们以后。关于我如何写它们有什么想法吗

谢谢


编辑:我不是在寻找现成的代码。简单的指导方针/大纲也有帮助

我认为这个问题没有任何问题。关于答案,我不确定是否存在保留初始rdd顺序的join(或shuffle)(即使是名称“shuffle”也能说明问题)。我会调查自定义分区,但我不会给它太多机会。对于一个执行连接的读者来说,我要悲观得多。祝你好运在我看来,当您实现这个定制读取器时(如果我理解正确的话,它可能比您想象的更复杂),您最好使用ApacheDrill进行完整的外部连接,将输出写入磁盘一次,并使用Spark读取/处理单个连接的文件。