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 条评论
登录 后参与评论

相关文章

来自专栏Albert陈凯

OLAP(On-Line Analysis Processing)在线分析处理引擎

OLAP(On-Line Analysis Processing)在线分析处理是一种共享多维信息的快速分析技术;OLAP利用多维数据库技术使用户从不同角度观察数...

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

IBM SPSS Modeler Social Network Analysis 的介绍和日常应用

IBM SPSS Modeler Social Network Analysis,中文叫做社交网络分析,本文将一律简称 SNA。 引言 IBM Business...

28310
来自专栏机器学习-数据挖掘

基于多维数据频繁项挖掘的母机隐患排查

本文首先通过“啤酒与尿布”的故事入手,介绍机器学习中常见问题——频繁项挖掘的应用背景;其次,简要介绍频繁项挖掘最常用的两种算法——Apriori算法和FP-gr...

1596
来自专栏技术专栏

《数据仓库工具箱》- 第三章零售业务中的知识点汇总

维度定义的是谁,什么时候,在哪的问题,作为聚合查询中的查询条件,分组条件,排序条件

722
来自专栏AI研习社

谷歌硬件工程师揭秘,TPU为何会比CPU、GPU快30倍?

在谷歌发布TPU一年后,这款机器学习定制芯片的神秘面纱终于被揭开了。 昨日,谷歌资深硬件工程师Norman Jouppi刊文表示,谷歌的专用机器学习芯片TPU处...

35810
来自专栏腾讯架构师的专栏

给 AI 换个“大动力小心脏”之通用 CNN 加速设计

基于 FPGA 的通用 CNN 加速设计,可以大大缩短 FPGA 开发周期,支持业务深度学习算法快速迭代;提供与GPU相媲美的计算性能,但拥有相较于 GPU 数...

1.1K2
来自专栏AI科技评论

深度 | 清华大学博士生涂锋斌:设计神经网络硬件架构时,我们在思考些什么?(下)

基于神经网络的人工智能近年取得了突破性进展,正在深刻改变人类的生产和生活方式,是世界各国争相发展的战略制高点。 神经网络作为实现人工智能任务的有效算法之一,已经...

37310
来自专栏我是攻城师

理解数据仓库中星型模型和雪花模型

3633
来自专栏机器之心

业界 | 深度学习芯片公司Graphcore初探:颠覆GPU、FPGA和CPU的新一代处理器IPU

选自Nextplatform 作者:Nicole Hemsoth 机器之心编译 参与:朱朝阳、侯韵楚、李亚洲、黄小天 ? 作为思维锻炼,让我们将神经网络视为大量...

2414
来自专栏前端架构

计算机模型与体系架构的发展——从图灵机到云计算机

按照图灵(Alan Turing)给出的计算机模型,计算机是由一个有限状态读写头和一个存储器构成。有限状态读写头从一个初始状态开始,对存储器上的(输入)数据进行...

612

扫描关注云+社区