1

我试图使用 pyspark 实现 SCD 类型 2 并将数据插入 Teradata 。我能够生成既有旧历史记录(数据库中已经存在)又有新记录的数据框,但是当我对那个数据框执行 spark.overwritewith truncatemode = true 时,我可以看到旧历史数据来自该数据框没有被插入,只有新的新记录被插入。例如下面是一个示例表和数据框。因此,如果在表中提升了员工,那么我们必须为新角色提供一个条目,并且我们必须维护该员工的旧详细信息。就像 Ray 从团队成员晋升为经理一样,决赛桌应该有 2 个条目,当前记录为 0 的团队成员和当前 ind 为 1 的新名称。

**table1**

|id(PK)| emp_id | name | designation | current record ind
|------|--------|------|---|-------------------------
| 1    |101     |Ray   | team member | 1
| 2    |102     |John  | team member | 1


Dataframe 
-----------------

|id    | emp_id | name | designation | current record ind
|------|--------|------|----------------------------
| 3    |101     |Ray   | Manager     | 1
| 4    |102     |John  | team member  | 1
| 5    |101     | Ray  | team member | 0

4

0 回答 0