1. 程式人生 > >spark 遷移資料

spark 遷移資料

有時候我們經常會用到以下場景,比如說將各種各樣的檔案從一個地方複製到另外一個地方,類似於hadoop 的dstcp功能,當然我們可以通過各種hdfs或者s3命令,以下的demo就是通過spark去實現類似這樣的功能

val source=""
val target=""
val data=sc.binaryFiles(source)
data.foreach(x =>{
         val path=target + x._2.getPath().substring(x._2.getPath().lastIndexOf("/"))
         val dir = new Path(path)
         val fs = FileSystem.get(URI.create(path),conf)
         val inputStream = x._2.open()
         val outStream: FSDataOutputStream = fs.create(dir)
         IOUtils.copyBytes(inputStream, outStream, 4096, true)
         outStream.close()
         inputStream.close()
         fs.close()
})