如何在Azure Data Flow中使用列的上一个非空值填充空行?
Azure Data Flow实现列空值向下填充方案
完全可以实现你要的“将空行自动填充为上方最近非空值”的需求,具体操作步骤如下:
- 第一步:固定行排序规则
要确定“上方行”的先后顺序,首先需要有明确的排序依据:如果源数据没有自增序号、操作时间戳这类天然排序字段,先添加代理键转换,生成从1开始递增的行号列,命名为RowID,避免处理过程中行顺序错乱。 - 第二步:配置窗口转换计算填充值
新增窗口转换,按以下规则配置:- 排序依据:选择
RowID(或你自己的排序字段),排序方向为升序 - 窗口范围:设置为「无界前置」,即计算范围覆盖从第一行到当前行的所有数据
- 窗口列配置:新增填充列(可命名为
FilledValue),表达式填写last(Value, true)
说明:
last()函数的第二个参数设置为true时会自动忽略空值,自动取当前行之前最近的非空值,完全匹配你的需求。如果需要按某列分组后单独向下填充,可额外在「分区依据」中选择对应的分组字段即可。 - 排序依据:选择
- 第三步:输出最终字段
新增选择转换,删除原来的空值Value列,将FilledValue重命名为Value,输出后即可得到你示例中的预期结果。
内容的提问来源于stack exchange,提问作者Toni Vukasinovic
相关产品推荐
相关产品推荐

