Делая это:
for (line <- Source.fromFile(...)) ...
Вы перебираете каждый символ из файла, а не каждую строку.
Вы, вероятно, имели в виду:
for (line <- Source.fromFile(...).getLines) ...
Кстати, вы можете объединить свои два for
понимания в одно:
scala> val allFiles = Array("data1.csv", "data2.csv")
allFiles: Array[java.lang.String] = Array(data1.csv, data2.csv)
scala> for {
| filename <- allFiles
| line <- io.Source.fromFile(filename).getLines
| } yield line.split(",")
res3: Array[Array[java.lang.String]] = Array(Array(a, b, c), Array(d, e, f), Array(1, 2, 3))