从Spark ETL重置BigQuery表

时间:2017-09-05 15:11:04

标签: apache-spark pyspark google-bigquery spark-dataframe etl

我有一个问题要问你。如果我有一个内置Databricks的ETL将数据加载到BigQuery中,但我想在每次运行ETL之前擦除BigQuery表,那可能吗?对不起新手问题!感谢!!!

1 个答案:

答案 0 :(得分: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:该表必须已存在。如果没有,那么就不会发现'作业结果中返回错误   默认值为CREATE_IF_NEEDED。

     

创建,截断和追加操作在作业完成时作为一个原子更新发生。

所以,WRITE_TRUNCATE就是你要找的东西