Я хотел, чтобы объекты Sale из HBase были объединены с их идентификаторами HBase (строковое представление ImmutableBytesWritable
) как Option[String]
.
Сначала я реализовал метод processSales
, чтобы он просто возвращал все идентификаторы продаж + hBase, как показано ниже:
private def processSales (result: Result, hBaseId: String): Option[String] = {
val triedSale: Try[Sale] = myThriftCodec.invert(result.getValue("binary", "object"))
triedSale match {
case Success(sale) => Some(hBaseId + sale)
case _ => None
}
}
Теперь я хочу вернуть только те сцепленные hBaseIds + Sales
, гдеПродажи имеют metric_1 == null
Итак, я попробовал следующее:
private def processSales (result: Result, hBaseId: String): Any = {
val triedSale: Try[Sale] = myThriftCodec.invert(result.getValue("binary", "object"))
triedSale match {
case Success(sale) => Some(hBaseId + sale)
case _ => None
}
triedSale match {
case someSale => if (someSale.get.metric_1 = null) someSale.map(sale => hBaseId + sale)
}
}
Но похоже, что я что-то здесь упускаю, и метод возвращает Any
, даже если я заверну это так Option(hBaseId + sale)
.
Что я должен исправить в своей логике, чтобы вернуть Option[String]
с продажами, имеющими metric_1 == null
?
UPD: Понижение рейтинга без указания проблем с моим вопросом не 'не имеет смысла.Это просто полностью демотивирует поиск новых знаний.