写点什么

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

  • 2015-06-08
  • 本文字数:1333 字

    阅读完需:约 4 分钟

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

  1. 随机数据生成(Random Data Generation)
  2. 概要与描述性统计(Summary and descriptive statistics)
  3. 协方差与相关性(Sample covariance and correlation)
  4. 交叉列表(Cross tabulation)
  5. 频率项(Frequent items)
  6. 数学函数(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()
```可能的结果显示为:
summary id uniform normal count 10 10 10 mean 4.5 0.5215336029384192 -0.01309370117407197 stddev 2.8722813232690143 0.229328162820653 0.5756058014772729| min 0 0.19657711634539565 -0.7195024130068081 max 9 0.9970412477032209 1.0900096472044518 交叉列表为一组变量提供了频率分布表,在统计学中被经常用到。例如在对租车行业的数据进行分析时,需要分析每个客户(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(斯皮尔曼相关)、针对协方差运算与相关性运算的聚合函数等。
若希望了解这些新增特性的具体内容,可以持续关注 [DataBricks 的开发者博客](http://databricks.com/blog/category/developer)。
- - - - - -
感谢 [丁晓昀](http://www.infoq.com/cn/author/%E4%B8%81%E6%99%93%E6%98%80) 对本文的审校。
给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 [editors@cn.infoq.com](mailto:editors@cn.infoq.com)。也欢迎大家通过新浪微博([@InfoQ](http://www.weibo.com/infoqchina),[@丁晓昀](http://weibo.com/u/1451714913)),微信(微信号:[InfoQChina](http://weixin.sogou.com/gzh?openid=oIWsFt0HnZ93MfLi3pW2ggVJFRxY))关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群 [![](https://static001.infoq.cn/resource/image/06/9f/06e1fec4a87eca3142d54d09844c629f.png)](http://shang.qq.com/wpa/qunwpa?idkey=cc82a73d7522f0090aa3cbb6a8f4bdafa8b82177f481014c976a8740d927997a))。
2015-06-08 04:467198
用户头像

发布了 109 篇内容, 共 46.4 次阅读, 收获喜欢 14 次。

关注

评论

发布
暂无评论
发现更多内容

如何在2021金三银四拿到35K,我肝了这份10W字Java面试手册送给大家

程序员 架构 面试

产品经理是吃青春饭的吗?

涛哥 数字产品和业务架构

产品经理

窥探未来不是梦,python数据分析轻松实现

小Q

Python 学习 编程 面试 数据分析

工作日志-2-22

技术骨干

常用的Date与LocalDate转换工具

废材姑娘

Java

(干货)玩转写作平台 - 优质作者推荐几大法则!!

InfoQ写作社区官方

InfoQ 玩转写作平台 上线规则

LeetCode题解:213. 打家劫舍 II,动态规划(缓存偷盗状态),JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

产品训练营第四章作业(二)

Arnold

Git 教程--git stash命令

生之欢愉,时间同行

git 程序员 git stash

Python基础之:数字字符串和列表

程序那些事

Python 字符串 Python基础 Python3 程序那些事

ConcurrentBag 听过没?好家伙高并发知识点十分密集!一种并发优化思路!

yes

Java 面试 并发

2020-我的技术之路:创业公司中的研发效能与技术赋能

王下邀月熊

大前端 后端 2020年总结

New转乾坤——云网融合真正的打开方式!

脑极体

第五章作业

Kalman

产品经理 产品经理训练营

玩转写作平台-公众号文章出圈福利~

InfoQ写作社区官方

InfoQ 玩转写作平台 出圈攻略

第五章学习总结

Kalman

产品经理 产品经理训练营

(干货)玩转写作平台-优质文章推荐五大爆点!

InfoQ写作社区官方

InfoQ 玩转写作平台 上线规则

week13作业

zbest

Impala 3.4在网易的最新实践

DataFunTalk

记一次独角兽公司双系统迁移合并解决方案

架构

面试系列一:精选大数据面试真题10道(混合型)-附答案详细解析

五分钟学大数据

大数据 面试 28天写作

Elasticsearch 组合查询

escray

elastic 七日更 28天写作 死磕Elasticsearch 60天通过Elastic认证考试 2月春节不断更

LeetCode 采坑两次后,我终于学会了 BFS

与你一起学算法

Python BFS 数据结构与算法

Selenium 八大定位,滚雪球学 Python 番外系列

梦想橡皮擦

Python 28天写作 2月春节不断更

梦境交互:做个现代灵媒,考虑一下?

脑极体

基于matlab的控制系统与仿真1-传递函数图像的绘制

AXYZdong

matlab 2月春节不断更

音频社交的变声,应用了哪些算法?

拍乐云Pano

RTC 语音聊天室 clubhouse 音频社交 变声

真正的勇士,敢于重新开始,敢于再次开始😂

Nydia

Spark Shuffle 内部机制(二)

hanke

大数据 spark 开源

Spring常用注解

ES_her0

28天写作

Eclipse快捷键大全

lnngle

Java eclipse 快捷键

Spark 1.4为DataFrame新增的统计与数学函数_语言 & 开发_张逸_InfoQ精选文章