我正在尝试为spark 1.5编写自己的UDF标准偏差,并希望看到1.6的实现。谢谢。如果这是不可能的,我将如何编写一个udf来计算给定columnName的列的标准偏差:(在scala中):
def stddev(columnName:String):Column = {}
答案 0 :(得分:0)
您可以在聚合中使用UDF
计算标准差,如下所示:
val df = sc.parallelize(Seq(1,2,3,4)).toDF("myCol")
df.show
>+-----+
>|myCol|
>+-----+
>| 1|
>| 2|
>| 3|
>| 4|
>+-----+
def stddev(col: Column): Column = sqrt(avg(col * col) - avg(col) * avg(col))
df.agg(stddev($"myCol")).first
> [1.118033988749895]