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,23 +102,22 @@ 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
for (i <- 1 until tokens.length) { (1 until tokens.length).foldRight(Array.newBuilder[(Int, Float)])((i, r) => {
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)
res += newEntry r += newEntry
}).result() match {
case (res) if res.nonEmpty => Some((userId, res.result()))
_ => none
} }
val result = res.result }
if (result.nonEmpty) { catch {
Some((userId, res.result()))
} else None
} catch {
case ex: Throwable => case ex: Throwable =>
log.warning( log.warning(
s"Error while loading knownFor from $textFile for line <$str>: " + s"Error while loading knownFor from $textFile for line <$str>: " +
@ -126,7 +125,6 @@ object KnownForSources {
) )
None None
} }
} else None
} }
} }