我有两个RDD并获得了左连接
左连接p1.leftOuterJoin(p2)
结果如下:
Array[((String, String), (Int, Option[Int]))] =
Array(((1001-150329-002-0-04624,5060567),(1,None)), ((1002-141105-008-0-01934,10145500),(1,None)), ((1013-150324-009-0-02270,15750046),(1,None)), ((1005-150814-005-0-05885,5060656),(1,Some(1))), ((1009-150318-004-0-02537,5060583),(1,None)))
我想将所有None
替换为0
并获取一个干净的数据集,如:
Array(((1001-150329-002-0-04624,5060567),0), ((1002-141105-008-0-01934,10145500),0), ((1013-150324-009-0-02270,15750046),0), ((1005-150814-005-0-05885,5060656),1)), ((1009-150318-004-0-02537,5060583),0))
基本上将所有(1,None)
替换为0
,将(1,Some(1))
替换为1
答案 0 :(得分:0)
如果您在Option
或Some
0
时查找None
的值,我会使用.map
和{{1}来实现}}:
.getOrElse
结果与预期结果匹配:
a.map { case (k, (_, o)) => (k, o.getOrElse(0)) }