динамический путь для извлечения файлов с начальной и конечной даты - PullRequest
0 голосов
/ 28 октября 2018

Я хочу создать только одну переменную пути для извлечения всех данных из разных каталогов в зависимости от введенных дат начала и окончания.

startDate = 2011/05/01
endDate = 2011/05/04

/myfolder/2011/05/01/*.csv
/myfolder/2011/05/02/*.csv
/myfolder/2011/05/03/*.csv
/myfolder/2011/05/04/*.csv

Я могу сделать это, извлекая отдельно из 4 различныхпути.Но я хочу 1 динамический путь.

1 Ответ

0 голосов
/ 03 ноября 2018

Вы можете сделать это, используя joda-time.

import org.joda.time.Days
import org.joda.time.format.DateTimeFormat

def dynamicPath(start: String, end: String): Array[String] = {
  val format = DateTimeFormat.forPattern("yyyy/MM/dd")
  val startDate = format.parseDateTime(start)
  val endDate = format.parseDateTime(end)

  val numberOfDays = Days.daysBetween(startDate, endDate).getDays()

  val dateRange = (for (d <- 0 to numberOfDays) yield s"/myfolder/${startDate.plusDays(d).toString("yyyy/MM/dd")}/*.csv").toArray

  dateRange
}

И вы бы назвали это, используя:

val folderPaths = dynamicPath("2011/05/01", "2012/06/04")
...