我在镶木地板文件中有数据,如下面的目录
input/data/id1/files
input/data/id2/files
input/data/id3/files
如何将每个ID作为文件夹名称读取这些数据?在阅读并进行一些处理之后,如何将输出存储在与输入路径相同的路径中。
/outout/data/id1/outputpaequet
/outout/data/id2/outputpaequet
/outout/data/id3/outputpaequet
答案 0 :(得分:2)
下面,状态就像在目录上做一个ls。获取路径列表,循环遍历它们,将它们写在类似的路径中,用输出替换输入。
val conf = new Configuration()
val fs = FileSystem.get(conf)
val status = fs.listStatus(new Path("/input/data/"))
status.foreach(f => {
val input = sqlContext.read.parquet(f.getPath.toString)
val output: DataFrame = // do something
output.write.parquet(f.getPath.toString.replace("input", "output"))
})