是的,BigQuery支持从Google表格加载外语数据。以下是一种解决方法的示例代码:
# 导入必要的库
from google.cloud import bigquery
from google.oauth2 import service_account
# 设置Google服务账号密钥
credentials = service_account.Credentials.from_service_account_file(
'path/to/service_account_key.json')
# 初始化BigQuery客户端
client = bigquery.Client(credentials=credentials)
# 定义Google表格URL
table_url = 'https://docs.google.com/spreadsheets/d/your_google_sheet_id/edit#gid=0'
# 定义BigQuery目标表的名称和架构
table_name = 'your_dataset.your_table'
schema = [
bigquery.SchemaField('column1', 'STRING'),
bigquery.SchemaField('column2', 'INTEGER'),
# 添加更多的架构字段
]
# 加载数据到BigQuery表
job_config = bigquery.LoadJobConfig(
schema=schema,
skip_leading_rows=1, # 跳过标题行
source_format=bigquery.SourceFormat.CSV,
)
job = client.load_table_from_uri(table_url, table_name, job_config=job_config)
# 等待导入作业完成
job.result()
# 检查导入作业的状态
if job.errors:
raise Exception(f'导入作业发生错误:{job.errors}')
print('数据已成功加载到BigQuery表。')
请确保将your_google_sheet_id
替换为Google表格的实际ID,并将your_dataset.your_table
替换为目标BigQuery表的实际名称。还要根据实际需求修改架构字段。此代码假设您已经将Google服务账号密钥保存在名为service_account_key.json
的文件中,并将其放在适当的路径下。