Spark 1.4为DataFrame新增的统计与数学函数

Spark一直都在快速地更新中,性能越来越快,功能越来越强大。我们既可以参与其中,也可以乐享其成。

目前,Spark 1.4版本在社区已经进入投票阶段,在Github上也提供了1.4的分支版本。最近,Databricks的工程师撰写了博客,介绍了Spark 1.4为DataFrame新增的统计与数学函数。这篇博客介绍的函数主要包括:

  • 随机数据生成(Random Data Generation)
  • 概要与描述性统计(Summary and descriptive statistics)
  • 协方差与相关性(Sample covariance and correlation)
  • 交叉列表(Cross tabulation)
  • 频率项(Frequent items)
  • 数学函数(Mathematical functions)

随机数据生成(Random Data Generation)主要是为测试数据提供方便快捷的接口,如range、rand和randn。rand函数提供均匀正态分布,而randn则提供标准正态分布。在调用这些函数时,还可以指定列的别名,以方便我们对这些数据进行测试。

概要与描述性统计(Summary and Descriptive Statistics)包含了计数、平均值、标准差、最大值、最小值运算。只需要针对DataFrame调用describe函数即可:

from pyspark.sql.functions import rand, randn

df = sqlContext.range(0, 10).withColumn('uniform', rand(seed=10)).withColumn('normal', randn(seed=27))

df.describe().show()

可能的结果显示为(转换为表格类型):

交叉列表(Cross Tabulation)为一组变量提供了频率分布表,在统计学中被经常用到。例如在对租车行业的数据进行分析时,需要分析每个客户(name)租用不同品牌车辆(brand)的次数。此时,就可以直接调用crosstab函数。例如:

df.stat.crosstab("name", "brand").show()

但是需要注意的是,必须确保要进行交叉列表统计的列的基数不能太大。

为DataFrame新增加的数学函数都是我们在做数据分析中常常用到的,包括cos、sin、floor、ceil以及pow、hypot等。以上新特性都会在Spark 1.4版本中得到支持,并且支持Python、Scala和Java。在未来发布的版本中,DataBricks还将继续增强统计功能,并使得DataFrame可以更好地与Spark机器学习库MLlib集成,例如Spearman Correlation(斯皮尔曼相关)、针对协方差运算与相关性运算的聚合函数等。

原文发布于微信公众号 - 逸言(YiYan_OneWord)

原文发表时间:2015-06-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏工科狗和生物喵

【计算机本科补全计划】CCF 2016_09_04 交通规划 (Dijkstra - 单源最短路径算法)

具体的想法来自下面这篇写的很好的博客,当然,他的代码很复杂,不如我的精简,但是解释这个算法的手法比我好得多!

1222
来自专栏张俊的专栏

【SPA大赛】机场客流量的时空分布预测比赛经验分享

1. 问题描述机场拥有巨大的旅客吞吐量,与巨大的人员流动相对应的则是巨大的服务压力。安防、安检、突发事件应急、值机、行李追踪等机场服务都希望能够预测未来的旅客吞...

4830
来自专栏圣杰的专栏

DDD理论学习系列(5)-- 统一建模语言

1.引言 上一节讲解了领域模型,领域模型主要是将业务中涉及到的概念以面向对象的思想进行抽象,抽象出实体对象,确定实体所对应的方法和属性,以及实体之间的关系。然后...

2927
来自专栏数说工作室

哈希函数的套路 | 文本分析:大规模文本处理(1)

这个系列打算以文本相似度为切入点,逐步介绍一些文本分析的干货。 第一篇中,介绍了文本相似度是干什么的; 第二篇,介绍了如何量化两个文本,如何计算余弦相似度,穿...

4208
来自专栏大数据

有向无环图检测

01 — Spark背景介绍 Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark 是一种与 Hadoop 相似的开源集群计算环...

3447
来自专栏算法channel

Spark|有向无环图(DAG)检测

01 — Spark背景介绍 Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark 是一种与 Hadoop 相似的开源集群计算环...

4348
来自专栏web前端教室

javascript 算法初识

最近有空,想学习下算法。一直感觉它很高深的样子,尤其我数学又不好。 但我还是想学学看,万一能学到点东西呢,,, 先来了解下算法的定义:是指解题方案的准确而完整的...

1876
来自专栏NewbieWeb

ThreeJS的DeviceOrientationControls源代码解析

在学习ThreeJS和WebGL的过程中想着实现一个基于手机陀螺仪的3D环绕视角的例子,遇到了很多困难,一直都没有完成;后来发现ThreeJS中已经有了类似的例...

661
来自专栏诸葛青云的专栏

迪杰斯特拉(dijkstra)c语言实现方法

迪杰斯特拉(dijkstra)是用来实现查找一个点到其它点最短路径的一种方法。通过查找从起点到最短距离的点,然后将该点放入到集合中,代表以及找到起点到这一点的最...

712
来自专栏深度学习之tensorflow实战篇

python—结巴分词的原理理解,Hmm中的转移概率矩阵和混淆矩阵。

结巴分词的过程: jieba分词的python 代码 结巴分词的准备工作 开发者首先根据大量的人民日报训练了得到了字典库、和Hmm中的转移概率矩阵和混...

4145

扫码关注云+社区