事務性寫入使用DBIO的雲存儲

Databricks DBIO包為Apache Spark作業提供對雲存儲的事務性寫操作。這解決了在原生雲設置中使用Spark時出現的許多性能和正確性問題(例如,直接寫入存儲服務)。

重要的

當您使用以。結尾的路徑訪問數據時,不尊重提交協議.例如,閱讀dbfs: / /我/路徑是否隻在讀取時返回已提交的更改/ * dbfs: / /我/路徑將返回目錄中所有數據文件的內容,而不管它們的內容是否已提交。這是一種預期的行為。

使用DBIO事務提交,元數據文件以_started_ < id >而且_committed_ < id >伴隨Spark作業創建的數據文件。通常不應該直接修改這些文件。相反,您應該使用真空命令清除它們。

清理未提交的文件

要清除Spark作業遺留的未提交文件,請使用真空命令刪除它們。正常情況下真空在Spark任務完成後自動運行,但如果任務中止,也可以手動運行它。

例如,真空保留1小時刪除超過一小時的未提交文件。

重要的

  • 避免吸塵時間少於一小時。可能導致數據不一致。

也看到真空

——遞歸地清空輸出路徑真空/ /輸出/目錄/路徑的保留<N>小時——清空編目表的所有分區真空的表保留<N>小時
//遞歸清空輸出路徑火花sql"VACUUM '/path/to/output/directory' [RETAIN  HOURS]")//清空編目表的所有分區火花sql"VACUUM tableName [RETAIN  HOURS]")