可以使用BigQuery的Streaming API,将文件分成多个部分并逐一加载,以避免出现过大的表格导致的错误。示例代码如下:
from google.cloud import bigquery
client = bigquery.Client()
table_id = "your-project.your_dataset.your_table"
with open("path/to/large_file.csv", "rb") as file_obj:
stream_obj = client.open_stream(table_id)
while True:
data = file_obj.read(1024 * 1024) # 读入分块数据,每块大小为1MB
if not data:
break
stream_obj.write_data(data)
# 等待数据全部上传
stream_obj.done()
此时,文件会被分成若干个1MB的部分,分别上传至BigQuery。当所有数据上传完成后,即可将其合并成一个完整的表格。