在BigQuery中使用Python循环上传文件,可以通过以下步骤完成:
pip install google-cloud-bigquery
from google.cloud import bigquery
import os
client = bigquery.Client()
def upload_file_to_bigquery(file_path, dataset_id, table_id):
table_ref = client.dataset(dataset_id).table(table_id)
job_config = bigquery.LoadJobConfig()
job_config.source_format = bigquery.SourceFormat.CSV
job_config.skip_leading_rows = 1
job_config.autodetect = True
with open(file_path, "rb") as source_file:
job = client.load_table_from_file(source_file, table_ref, job_config=job_config)
job.result() # 等待上传任务完成
print(f"文件 {file_path} 已成功上传到表 {table_id} 中。")
这个函数接受三个参数:文件路径(file_path),数据集ID(dataset_id)和表ID(table_id)。它将文件以CSV格式上传到指定的数据集和表中。
def upload_files_in_loop(file_directory, dataset_id, table_id):
for file_name in os.listdir(file_directory):
file_path = os.path.join(file_directory, file_name)
upload_file_to_bigquery(file_path, dataset_id, table_id)
这个函数接受三个参数:文件目录(file_directory),数据集ID(dataset_id)和表ID(table_id)。它将遍历指定目录中的所有文件,并使用之前创建的函数将它们逐个上传到BigQuery中。
file_directory = "your_file_directory"
dataset_id = "your_dataset_id"
table_id = "your_table_id"
upload_files_in_loop(file_directory, dataset_id, table_id)
替换上述代码中的"your_file_directory"、"your_dataset_id"和"your_table_id"为实际的文件目录、数据集ID和表ID。
这样,你就可以使用Python在BigQuery中使用循环上传文件了。请确保文件目录中的文件格式正确,并且BigQuery中的表已经创建好,以便成功上传数据。
领取专属 10元无门槛券
手把手带您无忧上云