你好,我是試圖拯救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)
…
我很感謝任何幫助。
謝謝。