在Apache Spark

时间:2017-05-02 14:29:15

标签: scala apache-spark spark-dataframe parquet

我在镶木地板文件中有数据,如下面的目录

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

1 个答案:

答案 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"))
})