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