Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 加载带有通配符的csv文件以匹配模式_Regex_Csv_Apache Spark_Filepath - Fatal编程技术网

Regex 加载带有通配符的csv文件以匹配模式

Regex 加载带有通配符的csv文件以匹配模式,regex,csv,apache-spark,filepath,Regex,Csv,Apache Spark,Filepath,我有24个csv文件,其中包含0到23个名称,例如hyper01.csv、hyper02.csv、…、hyper23.csv。但我只想使用通配符将文件从08加载到15 目前我正在使用文件夹_name/*{08-15},但它不起作用我正在使用spark如果您使用的是scala,您可以尝试以下方法: def getPaths(dir: String): List[String] = { val file = new File(dir) file.listFiles.filter(

我有24个csv文件,其中包含0到23个名称,例如hyper01.csv、hyper02.csv、…、hyper23.csv。但我只想使用通配符将文件从08加载到15


目前我正在使用文件夹_name/*{08-15},但它不起作用我正在使用spark

如果您使用的是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):_*)

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): _*)

我正在尝试这个文件夹\u name/*{08,15}*.csv它有什么问题..我还需要使用通配符而不是任何代码加载它
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): _*)