Apache Spark机器学习.2.4 数据集重组

简介:

2.4 数据集重组


本节,我们介绍数据集重组技术。我们将讨论一些特殊的Spark数据重组特征,以及一些可以用在Spark notebook中基于R语言数据重组的特别方法。

学习完本节,我们可以根据不同的机器学习需要进行数据集重组。

2.4.1 数据集重组任务

数据集重组虽然听起来比较容易,但还是很有挑战,并且非常耗时。

有两个常见的数据重组任务:一是,获取一个用于建模的数据子集;二是,以更高的层次汇总数据。例如,我们有学生数据,但是我们需要一些班级层面的数据集。为此,我们需要计算学生的一些属性,然后重组为新的数据。

处理数据重组,数据科学家和机器学习从业者经常使用他们熟悉的SQL和R语言编程工具。幸运的是,在Spark环境中,Spark SQL和R notebook能够让用户沿用他们熟悉的方式。我们将在下面两节中详细说明。

总体来讲,我们推荐使用SparkSQL进行数据集重组。然而,出于学习的需要,本节我们主要集中在Databricks环境中R notebook的使用。

在统计和数据科学方面,R语言和Spark在几个重要的应用场景都能很好地互补。默认情况下,Databricks的R notebook包括SparkR程序包,因此数据科学家可以轻松地受益于Spark在R语言分析方面的强大能力。除了SparkR,notebook可以方便地安装任何R语言的程序包。这里,我们将强调R notebook的几个特征。

 

为了在Databricks中使用R语言,在创建notebook时选择R语言作为编程语言。因为SparkR是Spark中新增加的特征,你需要记住将R notebook与1.4及以上版本的Spark集群关联。SparkR程序包是默认导入和配置的,你可以在R语言中执行Spark查询。

2.4.2 使用Spark SQL进行数据集重组

在上一节,我们讨论了使用SparkSQL进行数据集重组。

对于机器学习从业者,SQL是一个执行复杂数据汇集的有力工具,并有很多熟悉的例子。

SELECT是一个获取数据子集的命令。

对于数据汇集,机器学习从业者可以使用SparkSQL的sample.aggregate或窗口函数。

更多关于 SparkSQL的各种合并函数,请访问:https://spark.apache.org/docs/ 1.4.0/api/scala/index.html#org.apache.spark.sql.functions$。

更多关于 SparkSQL的窗口函数,请访问:https://databricks.com/blog/2015/ 07/15/ introducing-window-functions-in-spark-sql.html。

2.4.3 在Spark上使用R语言进行数据集重组

R语言有一个子集命令,通过下面的格式创建子集:

 

此外,我们也可以使用R语言的aggregate命令,如下所示:

 

然而,数据一般拥有多个层次的分组(嵌套处理、分割图设计,或重复测量),需要在多个层次上进行研究。例如,通过长期的临床研究,我们对次数、时间、病人与医疗的关系感兴趣。这些数据的存储和采集是按照简单和准确收集的方式进行优化,而不是按照你所需要的统计分析进行组合,这给你的分析工作带来更多困难。你需要流畅地重构这些数据以满足你的需要,但是很多软件包都无法完成这项任务,我们需要为每个新的实例编写新的代码。

尤其是R语言有一个主要用于数据重组的程序包reshape。reshape程序包使用一个融合和构造范例,这里,数据汇合成一个能够区分测量和识别变量形式, 然后将它“转换”到一个新的形状,它可能是一个DataFrame、列表或高维数组。

我们回顾一下2.2.3节,有4个表格进行数据分析。

 

在这个例子中,我们经常需要从第一个数据中获得一个子集,并与第4个数据合并。

相关文章
|
3月前
|
机器学习/深度学习 算法 数据挖掘
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构。本文介绍了K-means算法的基本原理,包括初始化、数据点分配与簇中心更新等步骤,以及如何在Python中实现该算法,最后讨论了其优缺点及应用场景。
206 6
|
17天前
|
机器学习/深度学习 分布式计算 大数据
阿里云 EMR Serverless Spark 在微财机器学习场景下的应用
面对机器学习场景下的训练瓶颈,微财选择基于阿里云 EMR Serverless Spark 建立数据平台。通过 EMR Serverless Spark,微财突破了单机训练使用的数据规模瓶颈,大幅提升了训练效率,解决了存算分离架构下 Shuffle 稳定性和性能困扰,为智能风控等业务提供了强有力的技术支撑。
137 15
|
3月前
|
机器学习/深度学习 算法 PyTorch
用Python实现简单机器学习模型:以鸢尾花数据集为例
用Python实现简单机器学习模型:以鸢尾花数据集为例
238 1
|
4月前
|
XML JSON 数据可视化
数据集学习笔记(二): 转换不同类型的数据集用于模型训练(XML、VOC、YOLO、COCO、JSON、PNG)
本文详细介绍了不同数据集格式之间的转换方法,包括YOLO、VOC、COCO、JSON、TXT和PNG等格式,以及如何可视化验证数据集。
813 1
数据集学习笔记(二): 转换不同类型的数据集用于模型训练(XML、VOC、YOLO、COCO、JSON、PNG)
|
4月前
|
分布式计算 大数据 Apache
利用.NET进行大数据处理:Apache Spark与.NET for Apache Spark
【10月更文挑战第15天】随着大数据成为企业决策和技术创新的关键驱动力,Apache Spark作为高效的大数据处理引擎,广受青睐。然而,.NET开发者面临使用Spark的门槛。本文介绍.NET for Apache Spark,展示如何通过C#和F#等.NET语言,结合Spark的强大功能进行大数据处理,简化开发流程并提升效率。示例代码演示了读取CSV文件及统计分析的基本操作,突显了.NET for Apache Spark的易用性和强大功能。
128 1
|
7月前
|
分布式计算 大数据 Spark
Spark大数据处理:技术、应用与性能优化(全)PDF书籍推荐分享
《Spark大数据处理:技术、应用与性能优化》深入浅出介绍Spark核心,涵盖部署、实战与性能调优,适合初学者。作者基于微软和IBM经验,解析Spark工作机制,探讨BDAS生态,提供实践案例,助力快速掌握。书中亦讨论性能优化策略。[PDF下载链接](https://zhangfeidezhu.com/?p=347)。![Spark Web UI](https://img-blog.csdnimg.cn/direct/16aaadbb4e13410f8cb2727c3786cc9e.png#pic_center)
196 1
Spark大数据处理:技术、应用与性能优化(全)PDF书籍推荐分享
|
6月前
|
UED 存储 数据管理
深度解析 Uno Platform 离线状态处理技巧:从网络检测到本地存储同步,全方位提升跨平台应用在无网环境下的用户体验与数据管理策略
【8月更文挑战第31天】处理离线状态下的用户体验是现代应用开发的关键。本文通过在线笔记应用案例,介绍如何使用 Uno Platform 优雅地应对离线状态。首先,利用 `NetworkInformation` 类检测网络状态;其次,使用 SQLite 实现离线存储;然后,在网络恢复时同步数据;最后,通过 UI 反馈提升用户体验。
154 0
|
6月前
|
机器学习/深度学习 TensorFlow 数据处理
分布式训练在TensorFlow中的全面应用指南:掌握多机多卡配置与实践技巧,让大规模数据集训练变得轻而易举,大幅提升模型训练效率与性能
【8月更文挑战第31天】本文详细介绍了如何在Tensorflow中实现多机多卡的分布式训练,涵盖环境配置、模型定义、数据处理及训练执行等关键环节。通过具体示例代码,展示了使用`MultiWorkerMirroredStrategy`进行分布式训练的过程,帮助读者更好地应对大规模数据集与复杂模型带来的挑战,提升训练效率。
166 0
|
6月前
|
分布式计算 Hadoop 大数据
大数据处理框架在零售业的应用:Apache Hadoop与Apache Spark
【8月更文挑战第20天】Apache Hadoop和Apache Spark为处理海量零售户数据提供了强大的支持
112 0

热门文章

最新文章

推荐镜像

更多