BigQuery-加载Json的列数超过10K



我想使用BQ API从json文件中加载10K列,该文件中有超过10K列(BQ限制(。

我可以使用BQ代码提取前10K列吗?这是我在网上找到的使用自动检测模式的代码,但我找不到任何可以选择列的内容。

欢迎为实现这一目标提供任何建议。谢谢艾兰

# from google.cloud import bigquery
# client = bigquery.Client()
# dataset_id = 'my_dataset'
dataset_ref = client.dataset(dataset_id)
job_config = bigquery.LoadJobConfig()
job_config.autodetect = True
job_config.source_format = bigquery.SourceFormat.NEWLINE_DELIMITED_JSON
uri = 'gs://cloud-samples-data/bigquery/us-states/us-states.json'
load_job = client.load_table_from_uri(
uri,
dataset_ref.table('us_states'),
job_config=job_config)  # API request
assert load_job.job_type == 'load'
load_job.result()  # Waits for table load to complete.
assert load_job.state == 'DONE'
assert client.get_table(dataset_ref.table('us_states')).num_rows == 50

加载作业不支持选择特定的列,相反,您可以将文件加载到只有一列类型为STRING的表中,然后使用查询提取所需的列,并将它们选择到最终表中

如果使用自动检测,则无法选择特定的列,但如果您可以自己提供架构,则可以使用ignoreUnknownValues选项让BigQuery忽略不在架构中的列,这基本上意味着只加载指定的列。