scala:如何纠正“选项"在 leftOuterJoin 之后输入 [英] scala: how to rectify "option" type after leftOuterJoin

查看:157
本文介绍了scala:如何纠正“选项"在 leftOuterJoin 之后输入的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

给定

scala> val rdd1 = sc.parallelize(Seq(("a",1),("a",2),("b",3)))
scala> val rdd2 = sc.parallelize(Seq("a",5),("c",6))
scala> val rdd3 = rdd1.leftOuterJoin(rdd2)
scala> rdd3.collect()
res: Array[(String, (Int, Option[Int]))] = Array((a,(1,Some(5))), (a,(2,Some(5))), (b,(3,None)))

我们可以看到rdd3中Option[Int]"的数据类型.有没有办法纠正这个问题,以便 rdd3 可以是 Array[String, (Int, Int)]?假设我们可以为无"指定一个值(例如 999).

We can see that the data type of "Option[Int]" in rdd3. Is there a way to rectify this so that rdd3 can be Array[String, (Int, Int)]? Suppose we can specify a value (e.g. 999) for the "None".

推荐答案

scala> val result = rdd3.collect() 
scala> result.map(t => (t._1, (t._2._1, t._2._2.getOrElse(999))))

应该这样做.

这篇关于scala:如何纠正“选项"在 leftOuterJoin 之后输入的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆