取消
顯示的結果
而不是尋找
你的意思是:

儲蓄與SaveMode拚花。覆蓋拋出異常

KrisMusial
新的因素

你好,我是試圖拯救DataFrame與SaveMode拚花。覆蓋,沒有成功。

我最小化代碼,複製下麵的兩個細胞的問題:

>用例類MyClass (val fld1:整數,val fld2:整數)> > val lst1 = sc.parallelize(列表(MyClass (1、2), MyClass (1、3)))。toDF > lst1。顯示> lst1.write.mode (SaveMode.Overwrite) .parquet (“/ mnt /低頻/編寫測試/ lst1.parquet”)
>用例類MyClass (val fld1:整數,val fld2:整數)> > val lst1 = sqlContext.read.parquet (“/ mnt /低頻/編寫測試/ lst1.parquet”) > val lst2 = sc.parallelize(列表(MyClass (1、4), MyClass (2、3)))。toDF > lst1.registerTempTable (tbl1) > lst2.registerTempTable (tbl2) > > val sql = " " >選擇t1。從tbl1 t1 * > >加入tbl2 t2 t2。fld1 = t1。fld1 t2 >。fld1是NULL >聯盟>選擇t2。從tbl2 t2 * > > " " > val lst3 = sqlContext.sql (sql) > lst3。顯示> lst3.write.mode (SaveMode.Overwrite) .parquet (“/ mnt /低頻/編寫測試/ lst1.parquet”)

這個想法是為了更新保存DataFrame,代之以新的內容。新內容來源於以前保存的副本和一個新的DataFrame。執行第一個單元格後,第二個和最後一行注釋掉了lst3細胞。顯示顯示正確的更新內容。

然而,試圖拯救lst1。拚花又拋出一個異常:

org.apache.spark。SparkException:工作中止。

引起的:org.apache.spark。SparkException:工作階段失敗而終止:任務0階段48.0失敗1次,最近的失敗:在舞台上失去了任務0.0 48.0 (TID 1779, localhost): . io .FileNotFoundException: / mnt /低頻/保存測試/ lst1.parquet /部分- r - 00000 - a119b6a9 - 64 - a6 - 4 - ba7 ba87 ad24341f7eea.gz。parquetat com.databricks.backend.daemon.data.client.DbfsClient.send0 (DbfsClient.scala: 65) com.databricks.backend.daemon.data.client.DbfsClient.sendIdempotent (DbfsClient.scala: 42)

我很感謝任何幫助。

謝謝。

1接受解決方案

接受的解決方案

米克羅斯
貢獻者

這導致一個問題的原因是我們閱讀和寫作,我們試圖覆蓋相同的路徑。這導致一個問題,因為數據不能流到我們試圖覆蓋相同的目錄中。

我建議增加一個臨時位置做重寫這個數據。

在原帖子查看解決方案

2回答2

米克羅斯
貢獻者

這導致一個問題的原因是我們閱讀和寫作,我們試圖覆蓋相同的路徑。這導致一個問題,因為數據不能流到我們試圖覆蓋相同的目錄中。

我建議增加一個臨時位置做重寫這個數據。

Guru421421
新的貢獻者二世

結果。選擇(“ValidationTable”、“結果”、“描述”、“CreatedBy”,“ModifiedBy”、“CreatedDate”、“ModifiedDate”) .write.mode(覆蓋).save (“

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map