У меня есть код ниже
val c: RDD[(String, String)] = graph.triplets.map(
triplet => {
if (triplet.attr == "condition"){
(triplet.srcAttr, triplet.dstAttr)
}
}
)
Это выдает type mismatch
ошибка
[error] found : Unit
[error] required: (String, String)
[error] if (triplet.attr == "condition"){
[error] ^
Я ищу эту ошибку, и есть несколько ответов, в которых говорится, что для этого выражения if
требуется else
, в противном случае компилятор не знает явного возврата map
функции
Тем не менее, я действительно запутался, потому что я могу использовать виды кода ниже, и нет никаких проблем
someRDD.map({
case (str, cnt) => (cnt)
})
Но у этого по-прежнему нет явного возврата, и он действительно очень похож на вышеприведенный неправильный, не так ли?