【发布时间】:2017-11-15 04:12:16
【问题描述】:
我有 Scala 代码,我在其中使用 udf 函数来计算计算及其在执行时以真或假格式的状态,我收到类似“无法转换为 scala.Function5”的错误。
任何帮助将不胜感激。
val kdRule = { (st: String, amtIs: Double, sQ: Int, lA: Double, vPP: Double,lD:Double) =>
if (st != "KL" && st != "AD" && amtIs == 0)
if (sQ >= 0)
if (Math.abs(Math.round(lA / sQ) - Math.round(((vPP * sQ) - lD) / sQ).toDouble ) < 0.02)
true
else if (Math.abs(Math.round(lA).toDouble - Math.round((vPP * sQ) - lD).toDouble ) < 0.02)
true
else
false
else
false
else
false
}
val kdRuleUdf = udf(kdRule)
kdDF.withColumn("RowKD", kdRuleUdf(kdDF("stypes"), kdDF("amadv"), kdDF("sdQ"),kdDF("lineM"), kdDF("vPP"),kdDF("lD"))).drop("RowKD")
【问题讨论】:
-
现在的错误是什么?我没有看到代码有任何错误。
-
Validation$$anonfun$14 不能转换为 scala.Function5
-
这应该可以我在本地尝试过并且工作正常。
-
@ShankarKoirala 感谢您的意见。
标签: scala apache-spark