spark RDD saveAsTextFile(path)也是調用的 hdfs的 saveAsHadoopFile 函數,但是並沒有什麼標誌設置是否重寫。
所以可以在代碼中用hadoop的刪除文件代碼模塊執行後,再寫入。(方案一:判定文件路徑是否存在,存在則刪除,方案二:try catch包含刪除操作代碼,然後再刪除)
//spark scala
import apache.hadoop.fs.FileSystem
import.apache.hadoop.fs.Path
var hadoopconf=HBaseConfiguration.create()
var fs=FileSystem.get(hadoopconf)
var path="xxxx"
try{
if(path.length()>5){//路徑名太短的不刪除,防止刪庫跑路
fs.delete(new Path(path),false)//false 直接刪除不放入Trash垃圾站
}
}catch{
case ex:Exception=>{
println(ex)
}
}
當然又出現了另一個問題,說路徑存在卻又無法刪除,屬於另一個問題,我懶的搞,直接shell手動刪除了,時間緊迫,後續再說