2017-09-05 25 views
0

我有一個問題給你。如果我在Databricks中構建了一個將數據加載到BigQuery中的ETL,但是我希望在每次運行ETL之前擦除BigQuery表,那麼這可能嗎?對新手問題抱歉!謝謝!!!從Spark ETL重置BigQuery表格

回答

2

當負載下是控制什麼和如何發生與表加載有用jobs.insert的configuration.load特提供的數據有兩個屬性(以及許多其他)爲:

configuration.load.writeDisposition

[可選]指定在目標表已存在時發生的操作。

支持以下值:
WRITE_TRUNCATE:如果表已存在,BigQuery將覆蓋表數據。 WRITE_APPEND:如果表已存在,則BigQuery將數據附加到表中。
WRITE_EMPTY:如果表已經存在且包含數據,則在作業結果中會返回「重複」錯誤。
默認值是WRITE_APPEND。

每個操作都是原子操作,只有在BigQuery能夠成功完成任務時纔會發生。創建,截斷和追加操作在作業完成時作爲一個原子更新發生。

configuration.load.createDisposition

[可選]指定作業是否允許創建新表。

支持以下值:
CREATE_IF_NEEDED:如果表不存在,BigQuery將創建表。
CREATE_NEVER:表格必須已經存在。如果沒有,則在作業結果中返回'notFound'錯誤。
默認值是CREATE_IF_NEEDED。

創建,截斷和追加操作在作業完成時作爲一個原子更新發生。

所以,WRITE_TRUNCATE是你在找什麼