From 573fab9526b6720498f7ad060365bfca9afb6680 Mon Sep 17 00:00:00 2001 From: denon1 Date: Sat, 1 Apr 2023 01:52:22 +0200 Subject: [PATCH] Change Refactor inverted if and changed for comprehension to a foldRight with a match on the result --- .../scalding/KnownForSources.scala | 46 +++++++++---------- 1 file changed, 22 insertions(+), 24 deletions(-) diff --git a/src/scala/com/twitter/simclusters_v2/scalding/KnownForSources.scala b/src/scala/com/twitter/simclusters_v2/scalding/KnownForSources.scala index 217f521ac..f59968e78 100644 --- a/src/scala/com/twitter/simclusters_v2/scalding/KnownForSources.scala +++ b/src/scala/com/twitter/simclusters_v2/scalding/KnownForSources.scala @@ -102,31 +102,29 @@ object KnownForSources { TypedPipe .from(TextLine(textFile)) .flatMap { str => - if (!str.startsWith("#")) { - try { - val tokens = str.trim.split("\\s+") - val res = Array.newBuilder[(Int, Float)] - val userId = tokens(0).toLong - for (i <- 1 until tokens.length) { - val Array(cIdStr, scoreStr) = tokens(i).split(":") - val clusterId = cIdStr.toInt - val score = scoreStr.toFloat - val newEntry = (clusterId, score) - res += newEntry - } - val result = res.result - if (result.nonEmpty) { - Some((userId, res.result())) - } else None - } catch { - case ex: Throwable => - log.warning( - s"Error while loading knownFor from $textFile for line <$str>: " + - ex.getMessage - ) - None + if (str.startsWith("#")) {none} + try { + val tokens = str.trim.split("\\s+") + val userId = tokens(0).toLong + (1 until tokens.length).foldRight(Array.newBuilder[(Int, Float)])((i, r) => { + val Array(cIdStr, scoreStr) = tokens(i).split(":") + val clusterId = cIdStr.toInt + val score = scoreStr.toFloat + val newEntry = (clusterId, score) + r += newEntry + }).result() match { + case (res) if res.nonEmpty => Some((userId, res.result())) + _ => none } - } else None + } + catch { + case ex: Throwable => + log.warning( + s"Error while loading knownFor from $textFile for line <$str>: " + + ex.getMessage + ) + None + } } }