python - BigQuery:如何使用传输 API 将文件从 GCS 加载到现有表?
问题描述
在气流中,我想将文件从 GCS 加载到现有的 BigQuery 表中。有一个操作员GoogleCloudStorageToBigQueryOperator
似乎每次都会创建一个新表。如果我指定现有表,则会引发错误。如何配置它以便可以加载到现有表中?
解决方案
当您不设置 write_disposition = "WRITE_APPEND"
属性时,通常会发生此问题。例如,在下面的代码中,CSV 正在从 加载GCS
到BigQuery
。如果您删除提到的属性,则每次代码运行时都会重新创建该表。
run = GoogleCloudStorageToBigQueryOperator(
bucket = "<bucket>",
source_objects = ['gcs_to_bigquery/file.csv'],
source_format = "CSV",
field_delimiter = ",",
skip_leading_rows = 1,
destination_project_dataset_table = "<project>.<dataset>.gcs_composer_bq",
task_id = 'xxxxxxxx',
write_disposition = "WRITE_APPEND"
)
您可以在此处找到此运算符的所有现有属性
推荐阅读
- python - 通过 boto 2.49 连接 AWS S3 时遇到问题
- java - 如何在从 keras 导出的 java 中加载 tensorflow .pb 模型
- visual-studio-code - 如何在 Visual Studio Code 中查找和更改 Java 编译器选项?
- react-native - 使用 PollyJS 在 ReactNative 上拦截 Apollo/GraphQL 请求
- reactjs - onSubmit 不适用于 react.js 使用 Formik 并刷新站点
- email - 需要用于根据 Google 表格单元格值发送电子邮件的脚本代码
- laravel - Laravel:收到带有用户名而不是令牌的密码重置链接
- ms-access - 一对多表单/子表单
- html - 在 Angular 7+ 的 html 文件中调用使用全局打字稿文件的数组
- google-cloud-platform - VPN 隧道在 AWS 和 GCP 之间不起作用