difference() 函数
difference() 返回后续值之间的差异。
数字类型的减法规则
- 两个非空值之间的差是它们的代数差;或者
null,如果结果为负并且nonNegative: true; null减去某个值总是null;- 某个值
v减去null是v减去在v之前看到的最后一个非空值;或者如果v是第一个看到的非空值,则为null。 - 如果
nonNegative和initialZero被设为true,difference()返回0和后续值之间的差值。 如果后续值小于零,difference()返回null。
输出表格
对于每个具有 n 行的输入表, difference() 输出一个具有 n - 1 行的表。
函数类型签名
(
<-tables: stream[A],
?columns: [string],
?initialZero: bool,
?keepFirst: bool,
?nonNegative: bool,
) => stream[B] where A: Record, B: Record
有关更多信息,请参见 Function type signatures。
参数
非负
不允许负差异。默认值是 false。
当 true 时,如果一个值小于前一个值,函数假设前一个值应该是零。
列
要操作的列的列表。默认值是 ["_value"]。
保留第一个
保留每个输入表中的第一行。默认值是 false。
如果 true,每个输出表的第一行的差异为null。
初始化为零
在差值计算中,当后续值小于前一个值且 nonNegative 为 true 时,使用零 (0) 作为初始值。默认值为 false。
表格
输入数据。默认是管道转发数据 (<-).
示例
计算后续值之间的差异
import "sampledata"
sampledata.int()
|> difference()
计算后续值之间的非负差
import "sampledata"
sampledata.int()
|> difference(nonNegative: true)
计算后续值之间的差异,包括空值
import "sampledata"
sampledata.int(includeNull: true)
|> difference()
在计算值之间的差异时保留第一个值
import "sampledata"
sampledata.int()
|> difference(keepFirst: true)