Azure映射数据流自定义连接报DF-Executor-ColumnNotFound但列存在
解决Azure映射数据流自定义连接的DF-Executor-ColumnNotFound错误
针对你遇到的自定义连接触发列不存在错误的问题,结合你的场景和表达式,大概率是以下细节问题导致的:
- 列名大小写不匹配:Azure映射数据流对列名大小写严格敏感。比如你表达式里的
Asgnmt_PS_MANAGER_POSITION_ID、mgr_PS_Manager_position_id这类混合大小写的列名,必须和数据源中实际列名的大小写完全一致,哪怕单个字母大小写错误都会触发找不到列的报错。 - 数据源别名错误:表达式中
selectemployees@EFF_DT里的selectemployees是对应数据源的数据流别名吗?要确认这个别名和你在数据流里给该数据源设置的别名完全一致(包括大小写、拼写),别名写错会导致系统无法定位到对应列。 - 列的归属混淆:自定义连接时要明确左右流的列归属,比如
Asgnmt_PS_MANAGER_POSITION_ID属于左流还是右流?如果该列实际在右流,但你未用流别名@列名的格式明确指定,或者搞反了流的归属,也会出现列找不到的情况。 - 上游步骤丢失列:检查对应数据源的上游转换步骤(比如投影、筛选),确认是否在之前的步骤中不小心移除了
EFF_DT、Mgr_comp_eff_dt这类目标列。如果上游已经排除这些列,连接步骤自然无法访问到。
这里给你一个明确列归属的优化表达式示例(假设selectemployees是左流别名,mgr是右流别名):
and( equals(selectemployees@Asgnmt_PS_MANAGER_POSITION_ID, mgr@mgr_PS_Manager_position_id), or( between(selectemployees@EFF_DT, mgr@Mgr_comp_eff_dt, mgr@Mgr_comp_eff_end_dt), between(selectemployees@END_EFF_DT, mgr@Mgr_comp_eff_dt, mgr@Mgr_comp_eff_end_dt) ) )
内容的提问来源于stack exchange,提问作者jms
相关产品推荐
相关产品推荐

