0
我想將一個變量而不是一列傳遞給火花中的UDF。非列參數的火花udf
地圖是以下格式的 Spark dataframe to nested map
val joinUDF = udf((replacementLookup: Map[String, Double], newValue: String) => {
replacementLookup.get(newValue) match {
case Some(tt) => tt
case None => 0.0
}
})
想
(columnsMap).foldLeft(df) {
(currentDF, colName) =>
{
println(colName._1)
println(colName._2)
currentDF
.withColumn("myColumn_" + colName._1, joinUDF(colName._2, col(colName._1)))
}
}
映射,但是罰球
type mismatch;
[error] found : Map
[error] required: org.apache.spark.sql.Column
[error] .withColumn("myColumn_" + colName._1, joinUDF(colName._2, col(colName._1)))
但收益率不支持的文字類型類scala.collection.immutable.Map –
好的,這意味着你不能將地圖傳遞給UDF :)所以你必須重構你的代碼,例如你目前正在處理這個問題,關閉 –
。謝謝。文字很棒。 –