2017-02-03 5 views
0

"0"と等しいエントリをのうち、をフィルタリングしたいとします。List [Map [String、String]]からエントリをフィルタリングする方法は?

val operations_seen_qty = parsed.flatMap(_.lift("operation_id")).toSet.size.toString 

parsedList[Map[String,String]]である。

どうすればいいですか?

これは私の案ですが、私は私が0に等しいoperation_idを持つエントリのみを選択対照的にだと思う:

val operations_seen_qty = parsed.flatMap(_.lift("operation_id")).filter(p=>p.equals("0")).toSet.size.toString

最終的な目的は、そのユニークなoperation_id値の数を数えることです"0"と等しくない。

+1

マップキーは 'List [String]'ですか?それはちょっと奇妙に思える。この質問にもう少し背景を追加して、Map [List [String]、String] 'にどういった方法があるかについてもっと詳しく説明してください。おそらくこれに適した代替データ構造があります。 –

+0

@YuvalItzchakov:申し訳ありません、それは 'List [Map [String、String]]'です。私はこのタイプミスを修正しました。 – Dinosaurius

答えて

1

私が正しく理解していれば、エントリIDが "0"でないエントリを保持したいだけです。この場合、フィルタの機能はp=>!p.equals("0")またはp=>p!="0"である必要があります。

フィルタは、エントリが述語を満たしたまま保持します。あなたがしたことはまったく逆です。

+0

'p => p!=" 0 "'と同じですか? – Dinosaurius

+0

@Dinosauriusはい、そうだと思います。 –

+0

私の場合、 'parsed'は' List [Map [String、String]] 'です。この場合は動作しますか? – Dinosaurius

関連する問題