私は2つのリストがあります:私を与えるScalaの2つのリストに(FULL OUTER)参加するには?
val mb = jan_tyres.toMap
val tyres_count = dec_tyres.flatMap{case (ka,va) => mb.get(ka).map(vb => (ka,va,vb))}.toList
を::
scala> tyres_count
res23: List[(String, Int, Int)] = List((007139::21,10,8), .....
scala> tyres_count.length
res24: Int = 53
これは、内部の計算された私がやっているこれらに参加するために今すぐ
scala> dec_tyres
res21: List[(String, Int)] = List((007139::21,10), .....
scala> jan_tyres
res22: List[(String, Int)] = List((005179::24,2), .....
scala> dec_tyres.length
res19: Int = 71
scala> jan_tyres.length
res20: Int = 82
:dec_tyres
とjan_tyres
を参加して私には53のレコードしか与えませんでした。ここで私は100レコードを期待しています。
dec_tyres
とjan_tyres
の両方に共通鍵がないすべてのレコードが削られます。その代わりに、それぞれの値として0を使用せずに、特定のキーを使用してレコードを欲しいと思います。
したがって、解決策は「完全な外部結合」です。これは本当に苦労しています。
これをhttps://stackoverflow.com/help/mcveに変換できますか?私は、そのリストの型シグネチャが(String、Int)であることに少しは関心があります。明示的に型指定された変数でクリアできるような、非常に奇妙な型変換が起こっています。 –
@RyanTheLeachあなたが仲良くなっていない。 List(String、Int)型のリストが2つあります。文字列がキーです。 List(String、Int、Int)をフォームに結合したいと思います。そして、この結合は完全な外部結合でなければなりません。 –
あなたのString/id/keyは真剣に "007139 :: 21"という形式ですか?それは混乱していて、「短所」のように見えます。 –