spark RDD saveAsTextFile沒有設置重複寫入的參數,只能用hdfs先刪再寫

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手動刪除了,時間緊迫,後續再說

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章