У меня есть упрямая ошибка в моем коде Scala, точно воспроизведенная ниже. В reduDataToMap я хотел бы выполнить итерацию по первому измерению someData.data (ie, строки) и поместить их в качестве значений на карту, в которой в качестве ключей используются заголовки столбцов.
object Test {
type Header = String
type DataObj = Int
type ReducedRow = Map[Header, DataObj]
case class SomeData(
dataCols: List[Header],
data: List[List[DataObj]]
)
def reduceDataToMap(someData: SomeData): List[ReducedRow] = {
someData.data.map(row => List(someData.dataCols, row).toMap
)
}
}
Вместо этого он выдает ошибку:
Cannot prove that List[Any] <:< (K, V).
Звучит так, как будто компилятору не удалось определить тип фактических элементов в someData.data, и поэтому он не уверен, что они могут составлять Значение карты? Но я действительно догадываюсь здесь, и любая помощь будет высоко ценится.