列值的算术运算

时间:2018-03-26 03:48:49

标签: scala apache-spark

我想从列值中减去值,如下所示

transactionRDD.select(
.when((col("transactionId") === col("uuid") ) , 60 - minute(col("transactionTime")))
)

这不允许我,因为它是一个专栏。 无论如何要实现这一目标?我试过Instanceof [Int]它仍然不允许。

1 个答案:

答案 0 :(得分:1)

您无法将列值减去60 - minute(col("transactionTime")),您应该将两者都作为列。因此,要将60作为column值,您可以使用lit创建column字面值 您还需要添加otherwise部分,否则返回null

transactionRDD.select(
.when((col("transactionId") === col("uuid") ) , lit(60) - minute(col("transactionTime")))
  .otherwise(0)
)