如何为DataFrame列

时间:2018-01-09 17:32:12

标签: scala apache-spark apache-spark-sql

我需要使用Spark 2.2和Scala计算列p的2的幂:

但如果我这样做,我会收到错误,因为($"ki" / $"ni")是列,而不是Double。

df.withColumn("p",(lit(1) - scala.math.pow(($"ki" / $"ni").as[Double],2))

2 个答案:

答案 0 :(得分:6)

您可以使用inbuilt pow function作为

import org.apache.spark.sql.functions._
df.withColumn("power_of_two", pow($"p", lit(2)))

答案 1 :(得分:0)

带有样本数据的 POW 函数

val someDF = Seq(
     (8,"A"),
     (12,"B"),
     (16,"C")).toDF("number","letter")

someDF.withColumn("pow_example",pow(2,$"number")).show()