2013-10-10 48 views
0

我的代碼讀取這樣的CSV:在Scala中過濾CSV?

def readCSV(fileName: String, filter: String) = 
    scala.io.Source.fromFile(fileName) 
    .getLines 
    .map(_.split("\t")) 
    .map(a ⇒ MyClass(a(0), a(1), a(2).toInt, a(3).toDouble)) 
    .toIndexedSeq 

我想篩選基於CSV的值列表,例如,如果最後一列是「T」,那麼我希望能夠傳入「T」作爲過濾器並且只有那個集合。

+0

哈哈,是啊,這是製表符分隔儘管CSV沒有逗號。唯一重要的是,它是用某種東西劃定的...... – Brad

+0

你能澄清你的意思是「T」嗎?它是一種類型還是具體價值?在這種情況下,你最終會得到什麼樣的收藏?例如。過濾列T設置爲「真」,或值> 5,或類似? – Shadowlands

回答

1

第一map後你得到陣列(順便說一句,你有沒有標籤,但用逗號分割其中)的集合。然後可以通過檢查此數組的值來過濾。例如,

map(_.split(",")).filter(_.last == "T"). ...