簡體   English   中英

如何在scala中跳過size=0的$EmptyMap的值

[英]How to Skip values of $EmptyMap of size=0 in scala

我正在使用 SQL 查詢來獲取數據並將列名和值映射到一個元組,然后將一組元組映射到一個映射列表,我需要跳過大小為 0 的映射,只獲取帶有值的映射。

我的代碼和結果如下。

SELECT orbkn_surgery_procedures_order_status,orbkn_surgery_procedures_id,orbkn_surgery_procedures_or_booking,orbkn_surgery_procedures_created_date_time,orbkn_surgery_procedures_order_id FROM OR_Cube_for_surgery

    try {
  NamedDB(Symbol(db)) readOnly { implicit session =>

      Right(

        SQL(sql + " LIMIT 50000")
          .map(_.toMap())
          .list
          .apply()
      )
  }

我得到的結果集

Right(List(Map(), Map(orbkn_surgery_procedures_id -> 41, orbkn_surgery_procedures_or_booking -> 734, orbkn_surgery_procedures_order_id -> 105610),Map(orbkn_surgery_procedures_order_status -> OPD, orbkn_surgery_procedures_id -> 174, orbkn_surgery_procedures_or_booking -> 883, orbkn_surgery_procedures_order_id -> 100788), Map(orbkn_surgery_procedures_order_status -> IPD, orbkn_surgery_procedures_id -> 175, orbkn_surgery_procedures_or_booking -> 884, orbkn_surgery_procedures_order_id -> 106321), Map(orbkn_surgery_procedures_order_status -> IPD, orbkn_surgery_procedures_id -> 176, orbkn_surgery_procedures_or_booking -> 886, orbkn_surgery_procedures_order_id -> 106354),Map(), Map(), Map(), Map(), Map(), Map(), Map(), Map(), Map(), Map(), Map(), Map()))

我需要擺脫那些Map()並只獲取​​一組 Maps(WITH ANY DATA)

您需要過濾Map列表以刪除空列表,如下所示:

Right(
  SQL(sql + " LIMIT 50000")
    .map(_.toMap())
    .list
    .apply()
    .filter(_.nonEmpty)
)

但是,如果可能,最好將過濾器放在 SQL 中並讓數據庫完成工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM