我有一个这样的CSV文件:
Date,price
2010-01-02,3.658
2010-01-05,3.618
2010-01-06,3.668
2010-01-07,3.628
2010-01-08,3.778
文件中的所有数据都具有year-01-someday,someprice
格式
我希望有一个应该以年为参数的功能。它应该读取给定年份的1月数据。应该在CSV文件中的每一行的字符串列表中收集数据。
目前我有这样的事情:
def get_january_data(year: Int) : List[String] =
{
val body = scala.io.Source.fromFile("x.csv").mkString
body.split("\n").toList
}
我不知道下一步该做什么?
谢谢你的时间
您可以使用正则表达式模式来识别和提取每行数据的有趣部分。
def get_january_data(year: Int) : List[String] = {
val Pattern = s"$year-(\\d+)-(\\d+),(.*)".r
for {
Pattern("01", day, price) <- io.Source.fromFile("x.csv").getLines
} yield price
}.toList
get_january_data(2010) //res0: List(3.658, 3.618, 3.668, 3.628, 3.778)
在这种情况下,它会忽略数据的“日期”部分,但如果需要,您可以将其作为返回的String
s的一部分。