从 AVRO 加载到 BigQuery - 在目标中指定小数类型 table

Loading from AVRO to BigQuery - specify decimal type in the target table

我正在使用 Google 的 Python SDK (https://googleapis.dev/python/bigquery/latest/index.html) 将 AVRO 文件加载到 BigQuery。由于数据中有一个 BigNumeric 列,我需要指定 --decimal_target_types=BIGNUMERIC 标志。有没有办法在 LoadJobConfig 对象中这样做?到目前为止我还没有成功:

import os
from google.cloud import bigquery

os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = './importer_google_credentials.json'

BUCKET_NAME = 'unique-bucket-name'
FILE_NAME = 'small-data-*.avro'

source_uri = 'gs://{}/{}'.format(BUCKET_NAME, FILE_NAME)
table_uri = "unique-table-name"

client = bigquery.Client()

job_config = bigquery.LoadJobConfig()
job_config.use_avro_logical_types = True
job_config.source_format = bigquery.SourceFormat.AVRO
job_config.autodetect = True
job_config.decimal_target_types = "BIGNUMERIC" #throws an AttributeError: Property decimal_target_types is unknown for <class 'google.cloud.bigquery.job.load.LoadJobConfig'>.

load_job = client.load_table_from_uri(
    source_uri, table_uri, job_config=job_config
)
load_job.result()  # Waits for the job to complete.

destination_table = client.get_table(table_uri)
print("Loaded {} rows.".format(destination_table.num_rows))

截至 2021 年 5 月 26 日,似乎无法使用 Python SDK 实现我想要的。我最终使用 bq 命令行工具和 --decimal_target_types=BIGNUMERIC.