这个错误是由于在加载作业中使用了不正确的数据类型导致的。在BigQuery中,数据类型应该与实际数据的类型一致。
以下是一个示例代码,展示了如何解决这个问题:
from google.cloud import bigquery
client = bigquery.Client()
# 定义加载作业的配置
job_config = bigquery.LoadJobConfig(
schema=[
bigquery.SchemaField("name", "STRING"),
bigquery.SchemaField("age", "INTEGER"),
bigquery.SchemaField("is_student", "BOOLEAN"),
],
# 设置正确的数据源格式
source_format=bigquery.SourceFormat.CSV,
# 设置正确的字段分隔符
field_delimiter=","
)
# 指定要加载的数据表
table_ref = client.dataset('dataset_name').table('table_name')
# 开始加载作业
load_job = client.load_table_from_uri(
'gs://bucket_name/file.csv',
table_ref,
job_config=job_config
)
# 等待加载作业完成
load_job.result()
# 检查加载作业的状态
if load_job.state == 'DONE':
print('数据加载成功!')
else:
print('数据加载失败!')
# 打印加载作业的错误信息
if load_job.errors:
for error in load_job.errors:
print('错误信息: {}'.format(error['message']))
在上面的示例代码中,首先定义了加载作业的配置job_config
,其中指定了正确的数据类型和数据源格式。然后使用load_table_from_uri
方法将数据加载到指定的数据表中。最后,检查加载作业的状态和错误信息。
请根据实际情况修改示例代码中的参数和数据类型,并确保数据类型与实际数据的类型一致,以解决这个问题。