Hier ist mein Beispiel für eine verschachtelte Map mit den Daten als Literale. Das Programm funktioniert wie vorgesehen.Scala verschachtelte Karten - wie zu verarbeiten?
var x = scala.collection.mutable.Map(
("Early", Map(("a", 1), ("b", 2))),
("Late", Map(("x", 24), ("y", 25))))
for (ticker <- x.keys) {
val trades = x(ticker)
for (tradetime <- trades.keys) {
val tradetotal = trades(tradetime)
println(ticker + " | " + tradetime + " | " + tradetotal)
}
println(ticker + " | " + trades)
}
Allerdings möchte ich die Literale zu beseitigen und die oben genannten Werte aus einer CSV-Datei lesen. Hier ist die csv:
Early,a,1
Early,b,2
Late,x,24
Late,y,25
Hier ist der Code, den csv zu lesen und die Werte in einer Art und Weise ähnlich dem obigen Programm mit Literalen ausdrucken.
val bufferedSource = io.Source.fromFile("mapt.csv")
val builder = StringBuilder.newBuilder
for (line <- bufferedSource.getLines) {
val cols = line.split(",").map(_.trim)
println(s"${cols(0)}|${cols(1)}|${cols(2)}")
var tmp = cols(0) // s"${cols(0)}"
val inner = scala.collection.mutable.Map.empty[String, Int]
inner(cols(1)) = cols(2).toInt
println(inner)
val outer = scala.collection.mutable.Map.empty[String, String]
outer(cols(0)) = inner
println(outer)
}
bufferedSource.close
Mein Code funktioniert nicht. Ich habe Schwierigkeiten, Anleitungen zur Verarbeitung verschachtelter Karten zu finden. Ich lerne Scala. Dankbar für alle Vorschläge zum Erstellen von verschachtelten Karten aus CSV-Datei-Daten.
bekomme ich folgende Fehlermeldung:
Welchen Fehler bekommen Sie? – mfirry
Ich habe einen Screenshot des Fehlers hinzugefügt. – Fred