BigQuery-载入超过1万列的Json

时间:2018-07-19 15:48:19

标签: google-bigquery

我想使用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

2 个答案:

答案 0 :(得分:1)

加载作业不支持选择特定的列-而是您可以仅将一个类型为STRING的列加载到表中,然后使用查询提取所需的列并将其选择到最终表中

答案 1 :(得分:0)

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