将sql.ColumnName强制转换为Double

时间:2016-12-02 01:15:02

标签: sql scala apache-spark dataframe casting

我需要调用scala.math.pow来计算一个数字,但是我在使用scala sql创建的列时会出现问题并转换为double。

这是我用来调用电源功能的线路。

scala.math.pow(pr,$”numinLinks”)

我有一个spark sql数据框,其中包含一个我尝试使用此UDL强制转换为double的列。

val toDouble = udf[Double, Int]( _.toDouble)

然后我在我的数据框中调用了它。

val joinDFAdjusted = join.withColumn(“numInLinks”, toDouble(joinDF(“numInLinks”)))

在架构中,它显示我的列是StructField(numInLinks,Double,true)。这是我收到的错误。

found: org.apache.spark.sql.ColumnName
required: Double

1 个答案:

答案 0 :(得分:1)

只需使用pow功能:

import org.apache.spark.sql.functions.pow

join.withColumn("numInLinksExp", pow($"pr", $"numinLinks"))