首先,请不要将重要的文字信息作为图像发布。我们无法从图像中复制粘贴。
我创建了一个较小的测试文件,如下所示:
A,B,C
10.75,10.75,10.47
164.56,164.99,160.98
7.1,7.4,9.4
14.2,14.8,18.8
就位后,我通过这段代码运行了它。
util.Using(io.Source.fromFile("train3.csv")){
_.getLines()
.map(_.split(","))
.toVector
.transpose
.groupMapReduce(_.head)(_.tail.map(_.toFloat))(_++_)
} //file is auto-closed
//res0: Try[Map[String,Vector[Float]]] =
// Success(Map(A -> Vector(10.75, 164.56, 7.1, 14.2)
// , B -> Vector(10.75, 164.99, 7.4, 14.8)
// , C -> Vector(10.47, 160.98, 9.4, 18.8)))
这将返回Failure()
如果文件无法打开,或者行长度不一致,或者数字字符串无法转换。 (这可能不是必需的。我只是认为这是可取的。)