将当前值与数据阶段中的先前值进行比较
compare current value with previous value in datastage
我有如下输入
空薪
10 1000
20 2000
30 3000
40 4000
我在顺序文件中需要的输出如下所示。也就是说prevsal应该有上一行的薪水
空薪预估
10 1000 空
20 2000 1000
30 3000 2000
40 4000 3000
我尝试通过将阶段变量指定为 prevsal=inputlink.salary 然后定义输出列 inputlink.salary=prevsal 来使用转换器。我知道这在逻辑上行不通,是的,它行不通。谁能帮我找到解决方案。
你走对了——变压器和阶段变量是正确的选择。
请记住,在转换器中,数据是自上而下处理的。这意味着首先处理第一个(最上面的)阶段变量,然后是第二个,依此类推,最后将数据放在输出 links.
让你输入列:inputlink.salary
假设有两个阶段变量:svPrevSalary(最高)
和第二个 svCurrentSalary
尝试在阶段变量部分进行以下分配:
1. svCurrentSalary (=) svPrevSalary
2. inputlink.salary (=) svCurrentSalary
使用
svPrevSalary
作为输出link/字段的推导。
请注意 (=) 只是您必须为第一阶段变量仅指定 svCurrentSalary 的想法。
当我开始 do.i 没有得到预期的结果时,我遇到了同样的问题。
对于这个问题,我们必须记下两件事。
1. 我在服务器上 doing.like 工作,顺序或 parallel.I 在并行环境中工作。
2.请记住link的执行顺序即i/o顺序。
代码- curr_salary -> Prev_Sal,
link.salary -> curr_Salary
link到prev_salary输出link到prev_salary
备注
如果您在并行环境中工作,那么您必须在每个阶段的执行部分创建一个顺序模式。
进入Stage->advanced->Execution mode->sequential.
我认为它应该有效。我实际做到了。Transformer_Image
谢谢
我有如下输入
空薪 10 1000 20 2000 30 3000 40 4000
我在顺序文件中需要的输出如下所示。也就是说prevsal应该有上一行的薪水
空薪预估 10 1000 空 20 2000 1000 30 3000 2000 40 4000 3000
我尝试通过将阶段变量指定为 prevsal=inputlink.salary 然后定义输出列 inputlink.salary=prevsal 来使用转换器。我知道这在逻辑上行不通,是的,它行不通。谁能帮我找到解决方案。
你走对了——变压器和阶段变量是正确的选择。 请记住,在转换器中,数据是自上而下处理的。这意味着首先处理第一个(最上面的)阶段变量,然后是第二个,依此类推,最后将数据放在输出 links.
让你输入列:inputlink.salary 假设有两个阶段变量:svPrevSalary(最高) 和第二个 svCurrentSalary
尝试在阶段变量部分进行以下分配:
1. svCurrentSalary (=) svPrevSalary
2. inputlink.salary (=) svCurrentSalary
使用
svPrevSalary
作为输出link/字段的推导。
请注意 (=) 只是您必须为第一阶段变量仅指定 svCurrentSalary 的想法。
当我开始 do.i 没有得到预期的结果时,我遇到了同样的问题。 对于这个问题,我们必须记下两件事。 1. 我在服务器上 doing.like 工作,顺序或 parallel.I 在并行环境中工作。 2.请记住link的执行顺序即i/o顺序。
代码- curr_salary -> Prev_Sal, link.salary -> curr_Salary
link到prev_salary输出link到prev_salary
备注 如果您在并行环境中工作,那么您必须在每个阶段的执行部分创建一个顺序模式。 进入Stage->advanced->Execution mode->sequential.
我认为它应该有效。我实际做到了。Transformer_Image 谢谢