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
.from(TextLine(textFile))
.flatMap { str =>
if (!str.startsWith("#")) {
if (str.startsWith("#")) {none}
try {
val tokens = str.trim.split("\\s+")
val res = Array.newBuilder[(Int, Float)]
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 clusterId = cIdStr.toInt
val score = scoreStr.toFloat
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) {
Some((userId, res.result()))
} else None
} catch {
}
catch {
case ex: Throwable =>
log.warning(
s"Error while loading knownFor from $textFile for line <$str>: " +
@ -126,7 +125,6 @@ object KnownForSources {
)
None
}
} else None
}
}