2016-05-23 43 views
4

我试图创建一个UDF,将在一列以0星火UDF错误 - 模式类型的任何不支持

我的数据框被取代消极的价值观 - 所谓的DF,以及含有一种叫avg_x一列。 这是我创建UDF

val noNegative = udf {(avg_acc_x: Double) => if(avg_acc_x < 0) 0 else "avg_acc_x"} 

代码我得到这个错误

java.lang.UnsupportedOperationException: Schema for type Any is not supported 

df.printSchema返回

​​

,所以我不明白为什么这个错误发生?

回答

11

这是因为else返回String"avg_acc_x"。拿走报价:

val noNegative = udf {(avg_acc_x: Double) => if(avg_acc_x < 0) 0 else avg_acc_x}