Change Refactor

inverted if and changed for comprehension to a foldRight with a match on the result
This commit is contained in:
denon1 2023-04-01 01:52:22 +02:00
parent ec83d01dca
commit 573fab9526
1 changed files with 22 additions and 24 deletions

View File

@ -102,31 +102,29 @@ object KnownForSources {
TypedPipe TypedPipe
.from(TextLine(textFile)) .from(TextLine(textFile))
.flatMap { str => .flatMap { str =>
if (!str.startsWith("#")) { if (str.startsWith("#")) {none}
try { try {
val tokens = str.trim.split("\\s+") val tokens = str.trim.split("\\s+")
val res = Array.newBuilder[(Int, Float)] val userId = tokens(0).toLong
val userId = tokens(0).toLong (1 until tokens.length).foldRight(Array.newBuilder[(Int, Float)])((i, r) => {
for (i <- 1 until tokens.length) { val Array(cIdStr, scoreStr) = tokens(i).split(":")
val Array(cIdStr, scoreStr) = tokens(i).split(":") val clusterId = cIdStr.toInt
val clusterId = cIdStr.toInt val score = scoreStr.toFloat
val score = scoreStr.toFloat val newEntry = (clusterId, score)
val newEntry = (clusterId, score) r += newEntry
res += newEntry }).result() match {
} case (res) if res.nonEmpty => Some((userId, res.result()))
val result = res.result _ => none
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
} }
} else None }
catch {
case ex: Throwable =>
log.warning(
s"Error while loading knownFor from $textFile for line <$str>: " +
ex.getMessage
)
None
}
} }
} }