使用spark/scala将文件从子目录复制到hdfs中的基本目录

使用spark/scala将文件从子目录复制到hdfs中的基本目录,scala,file,apache-spark,hdfs,subdirectory,Scala,File,Apache Spark,Hdfs,Subdirectory,每次作业运行时,我都会在基本hdfs目录下创建文件夹。 每个文件夹下都有.dat文件 我需要使用scala将.dat文件复制到我的基本目录,并归档子目录 比如说。 基本目录:-/user/srav/ 子目录:-/user/srav/20190101 /用户/srav/20180101 我的子目录/user/srav/20190101/test1.dat、/user/srav/20180101/test2.dat中有.dat文件 我需要将它们复制到/user/srav/下,并将20190101、2

每次作业运行时,我都会在基本hdfs目录下创建文件夹。 每个文件夹下都有.dat文件

我需要使用scala将.dat文件复制到我的基本目录,并归档子目录

比如说。 基本目录:-/user/srav/ 子目录:-/user/srav/20190101 /用户/srav/20180101

我的子目录/user/srav/20190101/test1.dat、/user/srav/20180101/test2.dat中有.dat文件 我需要将它们复制到/user/srav/下,并将20190101、20180101文件夹存档。请建议我们如何使用spark/scala(spark ver 2.0)实现此功能。

您可以尝试。大概是这样的:

  import org.apache.hadoop.fs._

  val conf2 = spark.sparkContext.hadoopConfiguration
  val fs = FileSystem.get(conf2)

  val srcs = Array("/user/srav/20190101","/user/srav/20180101").map(new Path(_))
  val dst = new Path("/user/srav/")

  fs.moveFromLocalFile(srcs,dst)

感谢快速发布Chlebek,基本目录中的子目录是动态的。我们需要检查子目录是否存在,然后在这些目录中移动文件(不是子目录)。