У меня есть парное СДР "A" класса дела в этом формате
case class MyCaseClass(ID: String, date: Date, label: String)
примерно так:
"ID1", ("ID1", 2006-06-28, "label1")
"ID2", ("ID2", 1996-05-13, "label2")
...
Я пытаюсь оставитьOuterJoin в этом СДР с массивом ID " B "вот так
[("ID1", "ID1") ("ID2", "ID2") ...]
Итак, я сделал
val C = B.leftOuterJoin(A)
, затем я получил несколько выходных записей, выглядящих так
("ID",("ID",Some(MyCaseClass("ID",2006-06-28,"label"))))
, а некоторые другие выходные записи выглядят как это
(ID,(ID,None))
Я понимаю, что это связано с тем, что некоторые идентификаторы присутствуют в B, но отсутствуют в A. Затем я хотел заполнить эти пропущенные значения, выполнив
val D = C.map(x => (x._1, x._2._2.getOrElse(MyCaseClass("xxx",9999-01-01,"-999"))))
, но scala пожаловался с этим сообщением об ошибке:
<console>:1: error: Decimal integer literals may not have a leading zero. (Octal syntax is obsolete.)
val D = C.map(x => (x._1, x._2._2.getOrElse(MyCaseClass("xxx",9999-01-01,"-999"))))
^
Я изначально спрашивал здесь (scala: как исправить тип "option" после leftOuterJoin ) простая версия этого же вопроса, но это кажется сложнее, чем я думал. Большое спасибо за вашу помощь!