Как я могу преобразовать файл CSV в список в Scala, когда строки данных имеют дату и целое число и разделены разными строками. Речь идет о фондовом рынке.
Приведенная ниже функция принимает в качестве аргументов символ акции и год. Он должен прочитать соответствующий CSV-файл, а затем извлечь данные января за данный год. Данные должны быть собраны в список строк (по одной записи на каждую строку в CSV-файле).
def get_january_data(symbol: String, year: Int) : List[String] = {
}
Файл csv выглядит так:
Data AJD
12/01/1998 0.32232
14/01/1998 0.32232
01.12.1998,0,32232,01.14.1998,0,32232
1 ответ
Если я понимаю ваш вопрос, вы можете начать со следующего фрагмента кода:
val data =
"""Data AJD
|12/01/1998 0.32232
|14/01/1998 0.32232
|14/02/1998 0.12333
|01/01/1999 0.12333""".stripMargin
def getJanuaryData(symbol: String, year: Int): List[String] = {
val dtf = DateTimeFormatter.ofPattern("dd/MM/yyyy")
val xs: Vector[(LocalDateTime, Double)] = fromString(data, dtf)
xs.filter(x => (x._1.getMonthValue == 1) && x._1.getYear == year)
.map(x => s"${x._1.format(dtf)} ${x._2}").toList
}
def fromString(str: String, dateFormatter: DateTimeFormatter = DateTimeFormatter.ofPattern("dd/MM/yyyy")): Vector[(LocalDateTime, Double)] = {
str.split("\n").tail.map { line =>
val tokens = line.split(" ") // consider different separator
(LocalDate.parse(tokens(0), dateFormatter).atStartOfDay()
, tokens.tail.head.toDouble)
}.toVector
}
getJanuaryData("", 1998)
getJanuaryData()
возвращает строки за январь и требуемый год. Пожалуйста, добавьте больше информации о биржевом символе, чтобы получить точный ответ.
Похожие вопросы
Новые вопросы
scala
Scala - это язык программирования общего назначения, в основном предназначенный для виртуальной машины Java. Разработанный для краткого, элегантного и безопасного для типов представления общих шаблонов программирования, он сочетает в себе как императивный, так и функциональный стили программирования. Его ключевые особенности: продвинутая система статического типа с выводом типа; типы функций; сопоставления с образцом ; неявные параметры и преобразования; перегрузка оператора; полная совместимость с Java; совпадение