我想使用BQ API从其中包含超过1万列(BQ限制)的json文件中加载1万列。
我可以使用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
答案 0 :(得分:1)
加载作业不支持选择特定的列-而是您可以仅将一个类型为STRING的列加载到表中,然后使用查询提取所需的列并将其选择到最终表中
答案 1 :(得分:0)
如果您使用自动检测,则不能选择特定的列,但是如果您可以自己提供模式,则可以使用ignoreUnknownValues选项让BigQuery忽略不在模式中的列,这基本上意味着加载指定的列列。