【发布时间】:2020-06-30 03:14:33
【问题描述】:
背景
我需要设计一个 Airflow 管道来将 CSV 加载到 BigQuery 中。
我知道 CSV 的架构经常发生变化。加载第一个文件后,架构可能是
id | ps_1 | ps_1_value
当第二个文件登陆并加载它时,它可能看起来像
id | ps_1 | ps_1_value | ps_1 | ps_2_value.
问题
处理此问题的最佳方法是什么?
我首先想到的是
- 加载第二个文件
- 将架构与当前表进行比较
- 更新表,添加两列(ps_2,ps_2_value)
- 插入新行
我会在 PythonOperator 中执行此操作。
如果文件 3 出现并且看起来像 id | ps_2 | ps_2_value,我会填写缺失的列并进行插入。
感谢您的反馈。
【问题讨论】:
-
你能更详细地解释你的第一步吗?您是否使用要插入的数据加载临时表?
-
我可以将文件读入 pandas 数据帧,或者可以,将其加载到 bigquery 中的临时表中,然后从那里获取架构。