Option
의 처리 방법이 아닙니다. 사용 .getOrElse
또는 (이 상황에서) 아마 .map
val ty=ttnew.distinct().leftOuterJoin(rank).map{ case ((key),(c,d)) => (key,c._1,c._2,c._3,d.getOrElse(Double).asInstanceOf[Double]) }
당신은 아마 당신이 Option
의 의미 (값이 존재하지 않을 수)를 전파 할 d.getOrElse(<a-good-default-value-like-zero-maybe>)
다른 상황을 수행 할 것이며, 그에서 경우에 당신은 사용해야 .map
:
val res: Option[String] = optionalDouble.map(doubleValue => callSomeFunctionThatConvertsDoubleToString(value))
당신도 패턴 매칭 및 추출기를 사용하여 다른 작업을 수행 할 수 있습니다. 예를 들어, .collect
은 (그것이 .map
,하지만하지 덮여 경우가 있습니다)를 사용하여 :
val ty=ttnew.distinct().leftOuterJoin(rank).collect{ case ((key),(c,Some(d))) => (key,c._1,c._2,c._3,d) }
그래서, 내가 d.getOrElse에서 d.getOrElse에 [더블 (더블) .asInstanceOf을 변경하는 가정하고 (0) – Rushabh
예, '0'은 도메인의 적절한 기본값으로 대체 될 수 있습니다. –
고마워. 나는 오류가 지속되면 다시 시도하고 당신에게 돌아갈 것입니다. – Rushabh