云函数中提取文件名子串并处理:GCS文件导入BigQuery
处理GCS文件名并上传至BigQuery的解决方案
提取文件名第一部分
要获取第一个点之前的内容(confidential或public),直接对文件名按.分割后取索引0的元素即可:
dataset_name = filename.split('.')[0]
提取第二部分并替换下划线为连字符
你原本的代码可以简化,分割后直接取索引1的元素就是第一和第二个点之间的内容,再用replace()方法把下划线换成连字符:
# 提取第二部分并替换下划线 table_name = filename.split('.')[1].replace('_', '-')
整合到你的云函数中
修改后的代码示例:
def upload_to_bq_from_gcs(event, context): filename = event['name'] input_bucket = event['bucket'] output_bucket = "sales_2020" # 提取数据集名(第一部分) dataset_name = filename.split('.')[0] # 提取表名(第二部分)并替换下划线为连字符 table_name = filename.split('.')[1].replace('_', '-') # 后续可基于dataset_name和table_name指定BigQuery的数据集与表 # 示例:构建BQ表路径 f"{dataset_name}.{table_name}"
内容的提问来源于stack exchange,提问作者Sana
相关产品推荐
相关产品推荐

