2016-01-13 148 views
0

我需要读取一个csv文件,然后创建一个具有指定3列的新文件。 我知道读取文本文件而不是csv文件。读取csv文件并在Scala中选择三列

import scala.io.Source._ 
val lines = fromFile("file.txt").getLines 
+1

关于csv文件没有什么魔力。用','分隔每一行,并且拿出你需要的东西...... –

回答

1

或者,如果你只是想前三列,试试这个

val lines = fromFile("file.txt"). 
       getLines. 
       map(_.split(",",4).take(3)). 
       toList 
0

假设是指列在CSV文件指数idx的集合,首先考虑

val idx = Array(1,3,4) 
val xs = (1 to 10).toArray 

所以我们可以取第2,4,5列(索引0指第一列),

idx.map(xs) 
Array(2, 4, 5) 

我们可以从每个分割线把这一概念应用ONN每个阵列如下,

Source.fromFile("file.csv").getLines.map(_.split(",").map(idx)) 

这种方法允许定义感兴趣的指数在运行时(非硬编码)。