Загрузка CSV-файлов с подстановочными знаками, чтобы соответствовать шаблону - PullRequest
0 голосов
/ 02 октября 2019

У меня есть 24 csv-файла, которые содержат от 0 до 23 в названии примера hyper01.csv, hyper02.csv, ...., hyper23.csv. Но я просто хочу загружать файлы с 08 по 15, используя подстановочные знаки

, в настоящее время я использую имя_папки / * {08-15}, но это не работает, я использую искру

Ответы [ 2 ]

0 голосов
/ 02 октября 2019

Маленькая функция Scala может быть использована для получения необходимых файлов:

def getDirs(root: String, start: Int, end: Int): Seq[String] = {
  (start to end).map(v => f"$root/hyper$v%02d.csv")
}

// usage
spark.read.parquet(getDirs("folder_name", 8, 15): _*)
0 голосов
/ 02 октября 2019

если вы используете scala, вы можете попробовать это:

  def getPaths(dir: String): List[String] = {
    val file = new File(dir)
    file.listFiles.filter(_.isFile)
      .filter(_.getName.startsWith("hyper"))
      .filter(s=>{
        val index = s.getName.replace("hyper", "")
          .replaceFirst("0", "")
          .replaceAll("\\.(.*)","")
          .toInt
        index >= 8 && index <= 15
      })
      .map(_.getPath).toList
  }

  val filesDirectory = "C:\\Users\\user\\hyper"
  getPaths(filesDirectory).foreach(println(_))

  val df = spark.read.csv(getPaths(filesDirectory):_*)

вывод:

C:\Users\user\hyper\hyper08.csv
C:\Users\user\hyper\hyper15.csv
...