2016-12-02 12 views
0

数値を計算するためにscala.math.powを呼び出す必要がありますが、scala sqlで作成した列をキャストしてdoubleにキャストするときに問題が発生します。sql.ColumnNameをDoubleにキャストする

これは私がpower関数を呼び出すために使用する行です。

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

私は、このUDLを使用してダブルにキャストしようとした列を持つspark SQLデータフレームを持っています。

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

これを私のデータフレームに呼び出しました。

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

スキーマでは、私の列がStructField(numInLinks、Double、true)であることを示しています。これは私が受け取るエラーです。ただ、pow機能を使用

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

答えて

1

:ここ

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

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

は、コードセグメントのより文脈です。私は各項目にpow関数を呼び出す必要があります。 pr変数はその行に応じて変わります。列の全体的な変更は機能しません。 –

+0

val result = joinDFAdjusted.select($ "p1_main"、$ "p2_main"、($ "numInLinks"/$ "totalInLinks")*($ "numOutLinks"/$ "totalOutLinks"))*(scala.math.pow (pr、$ "numinLinks"))) –

関連する問題