运行环境spark-shell
val p=spark.read.json("file:///root/spark-2.1.1-bin-hadoop2.7/examples/src/main/resources/people.json")
p.show
方差和标准差
1. 求age平均值
import spark.sql
val avgvule= sql("select avg(age) from people").collect.apply(0) (0).asInstanceOf[Double]
2.udf的函数
def subtraction2(variable:String):Double={
(variable.toDouble-avgvule)*(variable.toDouble-avgvule)}
3.注册ufd函数
spark.udf.register("square",subtraction2 _)
4.方差运行
sql("select sum(square(age))/count(square(age)) as variance from people").createTempView("variance")
5.标准差
sql("select sqrt(*) from variance").show
最近发现 spark sql 自带了方差和标准差的内置函数,自己重新却重写了一次。