BigQuery - 如何导入 WRITE_TRUNCATE 以覆盖大查询数据?

BigQuery - How to import WRITE_TRUNCATE for big query data overwrite?

我正在使用 python BigQuery 客户端 (https://github.com/tylertreat/BigQuery-Python) 将数据从 google 云存储上传到 table。我想覆盖数据,所以我需要将 writeDisposition 设置为 WRITE_TRUNCATE。我应该从哪里导入 WRITE_TRUNCATE?

job = client.import_data_from_uris( gs_file_path,
                               'dataset_name',
                               'table_name', 
                               schema, 
                               source_format=JOB_SOURCE_FORMAT_CSV,
                               writeDisposition=WRITE_TRUNCATE,
                               field_delimiter='\t')

这是当前错误 - NameError: name 'WRITE_TRUNCATE' is not defined.

此外,我很想知道导入其他类似的名称常量。

也许如果在任何事情之前你 运行:

from bigquery.client import JOB_WRITE_TRUNCATE

然后 运行:

job = client.import_data_from_uris( gs_file_path,
                                   'dataset_name',
                                   'table_name', 
                                   schema, 
                                   source_format=JOB_SOURCE_FORMAT_CSV,
                                   writeDisposition=JOB_WRITE_TRUNCATE,
                                   field_d

elimiter='\t')

它可能已经适合您了。不过,我认为自己定义这个变量并按需要使用它可能会以相同的方式工作并且更简单一些,如下所示:

write_disposition = 'WRITE_TRUNCATE'
job = client.import_data_from_uris( gs_file_path,
                               'dataset_name',
                               'table_name', 
                               schema, 
                               source_format=JOB_SOURCE_FORMAT_CSV,
                               writeDisposition=write_disposition,
                               field_delimiter='\t')

如果你想要一些附加操作,你可以将值更改为 write_disposition='WRITE_APPEND' 等等。