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

时间:2017-01-17 18:20:45

标签: python google-bigquery gcloud

我使用python BigQuery客户端(https://github.com/tylertreat/BigQuery-Python)将数据从谷歌云存储上传到桌面。我想覆盖数据,所以我需要将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.

另外,我有兴趣知道导入其他类似的名称常量。

1 个答案:

答案 0 :(得分:1)

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

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',依此类推。

相关问题