У меня есть CSV-файл, содержащий названия стран и годы, которые они выиграли на Евровидении:
country, year
Israel, 1998
Sweden, 2012
Sweden, 2015
United Kingdom, 1997
и мой CSV (используя tototoshi):
object CountryEurovision {
def countrEurovisionYearFile: File = new File("conf/countryEurovision.csv")
lazy val countrEurovisionYearMap: Map[String, String] = getConvertData
private def getConvertData: Map[String, String] = {
implicit object CodesFormat extends CSVFormat {
val delimiter: Char = ','
val quoteChar: Char = '"'
val escapeChar: Char = '"'
val lineTerminator: String = "\r\n"
val quoting: Quoting = QUOTE_NONNUMERIC
val treatEmptyLineAsNil: Boolean = false
}
val csvDataReader = CSVReader.open(countrEurovisionYearFile, "UTF-8")(CodesFormat)
val linesIterator = csvDataReader.iteratorWithHeaders
val convertedData = linesIterator.map {
row => row("Country") -> row("Year")
}.toMap
csvDataReader.close()
convertedData
}
}
Теперь, поскольку страна и год не уникальны, у страны может быть несколько лет, когда они выиграли, поэтому, когда я получу Швецию:
CountryEurovision.countrEurovisionYearMap.get("Sweden")
У меня только опция res0: Option[String] = Some(2015)
который я ожидаю, чтобы быть списком лет по стране ... даже если это страна всего один год, я получу список, а в случае Швеции я получу список 2012 и 2015 годов ...
Как мне изменить настройки для этого поведения?