如何解决Spark join 删除连接列
我有 2 个数据集正在执行连接。数据集 merc 和 ded 都具有相同的架构。
架构:id、mid、pid、zid
List<String> joinSeqList = Lists.newArrayList("id","mid");
Dataset<Row> dataDF = merc.as("merc")
.join(ded.as("ded"),convertListToSeq(joinSeqList),"fullouter");
private Seq<String> convertListToSeq(List<String> inputList) {
return scala.collection.JavaConversions.asScalaBuffer(inputList).seq();
}
我面临的问题是生成的架构包含 merc
的所有列,但不是 ded
的所有列。来自 ded 的 id 和 mid 不在最终模式中(它们是连接列)。
既然我得到了 merc
的所有列,我怎样才能得到 ded
的所有列。
所以输出应该包含merc
和ded
的所有列
解决方法
我能够使用以下连接条件解决
Dataset<Row> dataDF = merc.as("merc")
.join(ded.as("ded"),col("merc.id").equalTo(col("ded.id")).and(
col("merc.mid").equalTo(col("ded.mid"))),"outer");
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。