在您执行传输之前处理您的数据,以确保数据中的列顺序与您想要插入到BigQuery中的列顺序相匹配。您可以使用以下示例代码作为参考:
import csv
with open('/path/to/csv/file.csv', 'r') as file:
# 将CSV文件解析为列表,每个元素都是一个字典,其中键是列标题
reader = csv.DictReader(file)
data = [row for row in reader]
# 更改您想要按预期顺序插入到BigQuery中的字段顺序
headers = ['column1', 'column2', 'column3']
# 根据列标题重构数据
new_data = [{header: row[header] for header in headers} for row in data]
# 数据仅包含要在BigQuery中插入的列
# 现在,您可以使用插入BigQuery的代码,而不必担心列顺序是否正确
这个示例代码可以帮助你重新格式化CSV文件中的数据,以便与您在BigQuery中插入的列顺序相匹配。这样,您就可以避免Airflow GCSToBigQueryOperator重新排序您的列。