spark常用功能:使用Spark计算数列统计值

本文通过示例介绍了如何使用Spark SQL对数据进行统计分析,包括最大值、最小值、平均值、样本标准差、总体标准差、中位数和四分位数的计算。以iris数据集为例,详细解释了每个统计值的计算方法,并针对计算中位数和四分位数时可能遇到的问题进行了说明。
摘要由CSDN通过智能技术生成

参考 :

--  https://cloud.tencent.com/developer/article/1475487

先来回顾一下数据和对应的统计结果:

本文使用的是iris分类数据集,数据下载地址为:

http://archive.ics.uci.edu/ml/datasets/Iris

下载后转换为xlsx格式的文件,数据如下:

对应的统计结果如下:

在介绍之前,我还是想先说明一点,这一篇只是想先带大家体验一把Spark SQL,相关更多关于原理相关的知识,咱们会在后面的文章中详细介绍。

1、数据导入
这里咱们通过读取Excel的方式读取出相应的数据,并得到一个DataFrame:

def createDFByCSV(spark:SparkSession) = {
    val df = spark.sqlContext.read.format("com.databricks.spark.csv")
      .option("header","true") //这里如果在csv第一行有属性的话,没有就是"false"
      .option("inferSchema",true.toString)//这是自动推断属性列的数据类型。
      .load("resources/iris.csv")

    df.show()
  }

结果如下:

2、使用Spark SQL计算统计值
2.1 最大值、最小值
使用Spark SQL统计最大值或者最小值,首先使用agg函数对数据进行聚合,这个函数一般配合group by使用,不使用group by的话就相当于对所有的数据进行聚合。

随后,直接使用max和min函数就可以,想要输出多个结果的话,中间用逗号分开,而使用as给聚合后的结果赋予一个列名,相当于sql中的as:

import spark.implicits._

    df.agg(max($"feature1") as "max_feature1",
        min($"feature2") as "min_feature2")
      .show()

结果输出如下:

上面的$代表一

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值