如何在Scala Spark中读取文件夹的日志

时间:2020-03-06 06:52:50

标签: scala apache-spark

hdfs的文件夹如下:

/test/data/2020-03-01/{multiple inside files csv}
/test/data/2020-03-02/{multiple files csv}
/test/data/2020-03-03/{multiple files csv }

我要逐个读取文件夹中的数据,而不是整个

spark.read.csv("/test/data/*") //not in such manner

不是以上述方式,我想一一读取文件;这样我就可以在一些数据库中记录日期文件夹的日志了;这样,下次我可以在第二天或同一天(如果程序意外运行)跳过该文件夹:

1 个答案:

答案 0 :(得分:0)

val conf = new Configuration()
val iterate = org.apache.hadoop.fs.FileSystem.get(new URI(strOutput), conf).listLocatedStatus(new org.apache.hadoop.fs.Path(strOutput))
while (iterate.hasNext) {
    val pathStr = iterate.next().getPath.toString
    println("log---->"+pathStr)
    val df = spark.read.text(pathStr) 
  }

尝试执行类似上述操作,并读取为数据框,如果需要,可以将新日期df与旧df合并。