我有一个名为values
的数据集,其中有一个名为value
的列,已加载并转换为双精度型。我想添加一个新列diff
,其中diff[i] = value[i] - value[i-1]
。所以我这样做:
val diffs = values.withColumn("diff", values.col("value").minus(lag("value", 1, 0)))
但是我得到这个错误:
java.lang.UnsupportedOperationException:无法评估表达式:lag(input [0,double,true],1,0.0)
我在做什么错了?
[编辑]只是为了澄清,上面发布的代码在Kotlin中而不是Scala中。无论如何,这个问题与语言无关,比与Spark无关。