博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《Scala机器学习》一一1.5 使用Scala和Spark的Notebook工作
阅读量:6763 次
发布时间:2019-06-26

本文共 1439 字,大约阅读时间需要 4 分钟。

本节书摘来自华章计算机《Scala机器学习》一书中的第1章,第1.5节,作者:[美] 亚历克斯·科兹洛夫(Alex Kozlov),更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.5 使用Scala和Spark的Notebook工作

通常,这五种数字汇总方式不足以对数据形成初步认识。描述性统计(descriptive statistics)的术语非常通用,并且可以采用非常复杂的方法来描述数据。分位数和帕雷托图(Pareto chart)都是描述性统计的例子,当分析一个以上的属性时,相关性也是。在大多数情况下都能查阅到这些数据汇总的方法,但通过具体的计算来理解这些方法也很重要。

Scala或者Spark Notebook( https://github. com/andypetrella/spark-notebook)记录了完整的执行过程,并且保存为一个基于JSON的*.snb文件。Spark Notebook项目可以从上下载,本书提供了一个例子文件Chapter01.snb。对于Spark的使用,会在第3章中进行更详细的讨论。
Spark可以运行在本地模式下,这是一种特殊情形。即使在本地模式下,Spark也可以在单机上进行分布式计算,不过会受机器的CPU核(或超线程)的数量限制。对配置进行简单修改后,Spark就可在一个分布式集群上运行,并能使用多个分布式节点上的资源。
下面这组命令可用于下载Spark Notebook,并从代码库中复制所需的文件:
image

在浏览器地址栏上输入来打开Notebook,具体如图1-2所示:

image

图1-2 以列表形式来展示Spark Notebook的首页

通过点击来打开Chapter01 notebook。语句被组织成多个单元,并可通过点击顶部那个向右的小箭头来执行每个单元(其结果如图1-3所示)。也可通过菜单Cell→Run All来一次性运行所有的单元。
首先来观察一下离散的变量。比如得到另一些观察属性。如果像下面的代码影响了标签的分布,就不可能这样做:
image

在MacBook Pro上第一次读入这个数据集可能需要几分钟,但是Spark会把数据缓存在内存中,随后的汇总只需要一秒钟左右。Spark Notebook给出了数据值的分布,如图1-4所示。

通过查看离散变量对的交叉表计数(使用)来理解变量之间相互依赖的关系。DataFrameStatFunctions不支持相关度量计算,如卡方等(见图1-5)。
image

图1-3 执行notebook中的前几个单元任务

image

图1-4 计算分类字段的值的分布

image

从这里可以看出:最流行的服务是private,并且和SF 标志相关。分析依赖关系的另一种方法是看为0的项。比如,S2和S3标志明显和SMTP以及FTP流量相关,因为其他项的值都是0。

当然,最有趣的是与目标变量的相关性,但这些都可通过监督学习算法(在第3章和第5章会详细介绍)来更好地得到。
类似地,可以通过dataFrame.stat.corr()和dataFrame.stat.cov()函数计算数值变量的相关性(见图1-6)。该类支持皮尔森相关系数。另外,也可以直接在Parquet文件上使用标准的SQL语句:
image

最后计算百分数。这通常会对整个数据集排序,其代价非常大。但如果要比较的是第一个或最后一个,通常可对计算进行优化:

image

从Spark Notebook的部分示例代码可看出计算更通用的精确百分位数会有更高的代价。

image

转载地址:http://jxdeo.baihongyu.com/

你可能感兴趣的文章
JQ - 绑定(on)/解绑(off)事件(浅显的见解)
查看>>
JavaScript setInterval(定时/延时调用函数)
查看>>
Quartz.NET 任务调度教程。
查看>>
华为oj之字符串反转
查看>>
数据访问
查看>>
JSP里面的虚拟目录
查看>>
【329】word 替换文本高级用法
查看>>
自动化测试用例编写原则
查看>>
crontab定时任务以及其中中文乱码问题
查看>>
CSAPP buffer lab记录——IA32版本
查看>>
Hyperledger fabric多机的环境部署
查看>>
关于sqlserver2008 bcp根据数据表导出xml格式文件的小记
查看>>
总结:栈和队列的学习
查看>>
线段树(可能还会有树状数组吧)
查看>>
Management Console 工具管理类软件通用开发框架(开放源码)
查看>>
Gnome 3.2 发布计划及新功能
查看>>
已超过传入消息(65536)的最大消息大小配额。若要增加配额,请使用相应绑定元素上的 MaxReceivedMessageSize 属性...
查看>>
利用bobo-browse 实现lucene的分组统计功能
查看>>
/MT、/MD编译选项,以及可能引起在不同堆中申请、释放内存的问题
查看>>
基于SGIP协议编写短信网关接口
查看>>