在BigQuery中,可以使用引号包围的新行加载数据。以下是一个使用Python代码示例的解决方法:
from google.cloud import bigquery
# 定义要加载的数据
data = [
{'name': 'John', 'age': 25},
{'name': 'Jane', 'age': 30},
{'name': 'Tom', 'age': 35}
]
# 创建BigQuery客户端
client = bigquery.Client()
# 定义要加载数据的目标表
table_id = 'your_project.your_dataset.your_table'
# 定义要加载的数据格式(包括引号)
job_config = bigquery.LoadJobConfig(
source_format=bigquery.SourceFormat.CSV,
quote_character='"',
skip_leading_rows=1,
autodetect=True
)
# 将数据加载到表中
job = client.load_table_from_json(data, table_id, job_config=job_config)
job.result() # 等待加载作业完成
# 检查加载作业状态
if job.errors:
for error in job.errors:
print(error['message'])
else:
print('数据加载成功')
在上面的代码中,我们首先定义了要加载的数据,然后创建了BigQuery客户端。接下来,我们定义了目标表的ID和要加载的数据格式。在job_config中,我们设置了引号字符为双引号,以及跳过第一行(因为它是标题行)并自动检测表的模式。
最后,我们调用了client.load_table_from_json()
函数,将数据加载到指定的表中。通过job.result()
等待加载作业完成,并检查加载作业的状态。
请确保将your_project
,your_dataset
和your_table
替换为实际的项目、数据集和表的名称。