如何比较 ADF 数据流中的 2 个数据集并保存差异?
How to compare 2 datasets in ADF dataflow and save the difference?
我需要比较 2 table 并过滤不相同的行,并标记它们不同的列值。
TABLE 1
用户
人数
类型
价值
用户 1
1
一个
值2
用户 1
2
一个
值3
用户 1
1
B
值4
用户 1
2
B
值5
用户 1
1
C
值6
用户 1
2
C
值 7
用户 1
1
D
值 8
用户 1
2
D
值 9
TABLE 2
用户
人数
类型
价值
用户 1
1
一个
值2
用户 1
2
B
value3
用户 1
1
B
值4
用户 1
2
B
值5
用户 1
1
A
value6
用户 1
2
C
值 7
用户 1
1
D
值 8
用户 1
2
A
值9
最后的 table 应该是这样的:
决赛TABLE
用户
人数
类型
价值
类型更改
用户 1
2
B
value3
从 A 到 B
用户 1
1
A
value6
从 C 到 A
用户 1
2
A
值9
从 D 到 A
你可以先join TABLE1和TABLE2,然后使用filter来获取类型不同的行。接下来创建一个 DerivedColumn 以生成 Type Change 列。最后,使用Select转换保留你需要的列。
详情:
- 创建到 TABLE1 和 TABLE2 的连接转换。
- 过滤类型不同的行。表达式:
source2@Type != source1@Type
- 添加类型更改列。表达式:
concat('from ',source1@Type,' to ', source2@Type)
- 使用 Select 转换保留您需要的列。
数据预览:
我需要比较 2 table 并过滤不相同的行,并标记它们不同的列值。
TABLE 1
用户 | 人数 | 类型 | 价值 |
---|---|---|---|
用户 1 | 1 | 一个 | 值2 |
用户 1 | 2 | 一个 | 值3 |
用户 1 | 1 | B | 值4 |
用户 1 | 2 | B | 值5 |
用户 1 | 1 | C | 值6 |
用户 1 | 2 | C | 值 7 |
用户 1 | 1 | D | 值 8 |
用户 1 | 2 | D | 值 9 |
TABLE 2
用户 | 人数 | 类型 | 价值 |
---|---|---|---|
用户 1 | 1 | 一个 | 值2 |
用户 1 | 2 | B | value3 |
用户 1 | 1 | B | 值4 |
用户 1 | 2 | B | 值5 |
用户 1 | 1 | A | value6 |
用户 1 | 2 | C | 值 7 |
用户 1 | 1 | D | 值 8 |
用户 1 | 2 | A | 值9 |
最后的 table 应该是这样的:
决赛TABLE
用户 | 人数 | 类型 | 价值 | 类型更改 |
---|---|---|---|---|
用户 1 | 2 | B | value3 | 从 A 到 B |
用户 1 | 1 | A | value6 | 从 C 到 A |
用户 1 | 2 | A | 值9 | 从 D 到 A |
你可以先join TABLE1和TABLE2,然后使用filter来获取类型不同的行。接下来创建一个 DerivedColumn 以生成 Type Change 列。最后,使用Select转换保留你需要的列。
详情:
- 创建到 TABLE1 和 TABLE2 的连接转换。
- 过滤类型不同的行。表达式:
source2@Type != source1@Type
- 添加类型更改列。表达式:
concat('from ',source1@Type,' to ', source2@Type)
- 使用 Select 转换保留您需要的列。
数据预览: