当前位置:  开发笔记 > 编程语言 > 正文

当左侧键为Option []时,Spark左外连接

如何解决《当左侧键为Option[]时,Spark左外连接》经验,为你挑选了1个好方法。

我有

val rdd1 :  RDD[(Option[String], (String, Option[Context]))]

val rdd2 : RDD[(String,Double)]

现在,我想,rdd1.leftOuterJoin(rdd2)但我当然不能,因为Option[String]不同于String.

连接操作的基本原理是,如果rdd1的键包含一些值,我希望有一个额外的信息.所需的输出类型为:RDD[(Options[String],((String, Option[Context]),Option[Double]))

什么是旁路?



1> zero323..:

您只需映射rdd2RDD[(Option[String], Double)]:

rdd1.leftOuterJoin(rdd2.map{case (k, v) => (Option(k), v)})

如果Context可以使用Spark SQL类型表示,那么您可以简单地将两个RDD转换为DataFrame并加入.None被映射到NULLs所以一切都应该按预期工作.

推荐阅读
依然-狠幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有