在BigQuery中写入数据时,如果遇到"Bigquery测试容器无法处理待写入流"的错误,通常是由于代码中没有正确指定写入数据的目标表或者没有正确配置写入数据的选项。
以下是一个代码示例,展示了如何正确地向BigQuery写入数据:
from google.cloud import bigquery
# 设置Google Cloud项目ID和目标数据集和表的名称
project_id = "your-project-id"
dataset_id = "your-dataset-id"
table_id = "your-table-id"
# 创建BigQuery客户端
client = bigquery.Client(project=project_id)
# 构造要写入的数据
data = [
{
"name": "John",
"age": 30,
"city": "New York"
},
{
"name": "Jane",
"age": 25,
"city": "San Francisco"
}
]
# 创建目标表引用
table_ref = client.dataset(dataset_id).table(table_id)
# 创建加载配置
job_config = bigquery.LoadJobConfig()
job_config.write_disposition = bigquery.WriteDisposition.WRITE_APPEND # 设置写入模式为追加
job_config.source_format = bigquery.SourceFormat.NEWLINE_DELIMITED_JSON # 设置源数据格式为newline-delimited JSON
# 将数据写入BigQuery
load_job = client.load_table_from_json(data, table_ref, job_config=job_config)
load_job.result() # 等待加载作业完成
# 检查加载作业的状态
if load_job.state == "DONE":
print("Data loaded successfully.")
else:
print("Error loading data: {}".format(load_job.error_result))
请确保替换示例代码中的project_id
、dataset_id
和table_id
为您自己的项目、数据集和表的名称。此外,根据您的数据格式和需求,可以调整data
、job_config
和load_job
的设置。
使用上述代码示例,您应该能够成功地将数据写入BigQuery,并避免"Bigquery测试容器无法处理待写入流"的错误。