Apache Spark机器学习2.7 复用性和自动化

简介:

2.7 复用性和自动化


本节我们将讨论数据集组织方法、预处理工作流方法,然后使用Apache Spark pipeline模型进行表示,并实现工作流。然后,我们将评估数据预处理的自动化解决方案。

学完本节,我们应能够使用Spark pipeline模型来表示和实现数据集预处理工作流,理解一些基于Apache Spark的自动化解决方案。

2.7.1 数据集预处理工作流

数据准备工作是从数据清洗到标识匹配,再由数据重组到特征提取,能以某种形式进行组织,反映了一步一步开展机器学习数据集准备的有序过程。换言之,所有的数据准备工作可以被组织为一个工作流程。

为工作流组织数据清理可以帮助实现复用性工作和自动化,对于机器学习从业者而言极具价值,这是因为机器学习从业者和数据科学家往往要花费工作时间的80%用于数据清洗和预处理。

在大多数机器学习项目中,包括后续章节中要讨论的,数据科学家需要把数据划分训练数据集、测试数据集和验证数据集。这里,需要对训练数据集做的预处理同样会重复应用于测试数据集和验证数据集。仅以此为由,利用工作流进行复用将节省机器学习从业者大量时间,也有利于避免许多错误。

使用Spark表示和实现数据预处理的工作流有独特优势,其中包括:

不同来源之间的数据流无缝集成。

这是首要且非常重要的一步。

可用MLlib和GraphX数据处理库。

正如前面章节中指出,构建基于MLlib和GraphX的库使得数据清洗更加容易。

避免与速度较慢的脱机表连接。

Spark SQL比SQL运行速度快。

操作被自然地并行执行,速度显著提升。

并行计算由Apache Spark提供;同时,优化是Spark提供的另一个优势。

Spark pipeline API使得开发、部署数据清理和数据预处理工作流特别容易。

2.7.2 基于Spark pipeline的数据集预处理

作为案例,SampleClean是数据预处理系统的一部分——特别适于数据清洗和对象分析工作。

为了更好地学习,我们鼓励用户把SampleClearn和R notebook相结合,然后利用Apache Spark pipeline来组织工作流。

正如在前面的章节中讨论的,为完成数据预处理,使其可用,我们需要至少以下步骤:

1.数据清洗,处理缺失情况。

2.对象分析,解决对象问题。

3.重组数据,覆盖子集和汇总数据。

4.连接数据。

5.基于现有特征开发新特征。

对于一些最基本的预处理,我们可以用几行R语言代码组织成工作流:

 

然后,我们使用R语言函数、subset、aggregate和merge重组和连接数据集。

上述在R notebook上开展的工作,通过结合使用SampleClearn和特征开发,完成工作流。

然而,在实际工作中,预处理工作流会更加复杂,并可能会涉及反馈。

2.7.3 数据集预处理自动化

Spark新的pipeline模型能较好地表示工作流。

一旦所有数据预处理步骤经过组织进入工作流,自动化将变得更容易。

Databricks是一个端到端的解决方案,目的是更容易地构建一个从数据采集到生成的pipeline。同样的概念也适用于R notebook:你可以规划R notebook在现有的或新的Spark集群上运行作业。每个作业运行的结果,包括可视化,都可以进行浏览,这使得数据科学家的工作成果可以更简便快速地投入到生产。

 

这里有一点很重要:数据准备可以将输出转换为DataFrame。然后,可以很容易地与机器学习pipeline结合,全部实现自动化。

例如,最常见的高级分析任务可以使用MLlib新的pipeline API。例如,下面的代码创建一个简单的文本分类pipeline,pipeline由tokenizer、散列词频特征提取机和逻辑回归组成:

 

建立好pipeline之后,我们就可以用它直接在DataFrame上进行训练模型:

 

上面的代码,我们将在后面的章节中进行更多讨论。

2.2.3节中有如下4个做案例说明的数据表:

 

 

基于这组数据集,我们进行了:

1.数据清洗。

2.一致性匹配。

3.数据集重组。

4.数据集连接。

5.特征提取,然后开展数据连接、特征选择。

为了实现上述工作,我们可以使用R notebook将这些工作组织为可自动化的工作流,也可求助于Spark pipeline。

完成上述所有工作后,我们就可以开展机器学习了。


 

 

相关文章
|
6月前
|
分布式计算 大数据 数据处理
Apache Spark:提升大规模数据处理效率的秘籍
【4月更文挑战第7天】本文介绍了Apache Spark的大数据处理优势和核心特性,包括内存计算、RDD、一站式解决方案。分享了Spark实战技巧,如选择部署模式、优化作业执行流程、管理内存与磁盘、Spark SQL优化及监控调优工具的使用。通过这些秘籍,可以提升大规模数据处理效率,发挥Spark在实际项目中的潜力。
466 0
|
6月前
|
存储 机器学习/深度学习 Apache
如何将Apache Hudi应用于机器学习
如何将Apache Hudi应用于机器学习
58 0
|
21天前
|
分布式计算 大数据 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的易用性和强大功能。
32 1
|
3月前
|
分布式计算 Hadoop 大数据
大数据处理框架在零售业的应用:Apache Hadoop与Apache Spark
【8月更文挑战第20天】Apache Hadoop和Apache Spark为处理海量零售户数据提供了强大的支持
62 0
|
3月前
|
分布式计算 Serverless 数据处理
EMR Serverless Spark 实践教程 | 通过 Apache Airflow 使用 Livy Operator 提交任务
Apache Airflow 是一个强大的工作流程自动化和调度工具,它允许开发者编排、计划和监控数据管道的执行。EMR Serverless Spark 为处理大规模数据处理任务提供了一个无服务器计算环境。本文为您介绍如何通过 Apache Airflow 的 Livy Operator 实现自动化地向 EMR Serverless Spark 提交任务,以实现任务调度和执行的自动化,帮助您更有效地管理数据处理任务。
195 0
|
4月前
|
分布式计算 Apache Spark
|
5月前
|
分布式计算 大数据 数据处理
Apache Spark在大数据处理中的应用
Apache Spark是大数据处理的热门工具,由AMPLab开发并捐赠给Apache软件基金会。它以内存计算和优化的执行引擎著称,提供比Hadoop更快的处理速度,支持批处理、交互式查询、流处理和机器学习。Spark架构包括Driver、Master、Worker Node和Executor,核心组件有RDD、DataFrame、Dataset、Spark SQL、Spark Streaming、MLlib和GraphX。文章通过代码示例展示了Spark在批处理、交互式查询和实时数据处理中的应用,并讨论了其优势(高性能、易用性、通用性和集成性)和挑战。【6月更文挑战第11天】
129 6
|
5月前
|
分布式计算 Spark 大数据
深入探究Apache Spark在大数据处理中的实践应用
【6月更文挑战第2天】Apache Spark是流行的开源大数据处理框架,以其内存计算速度和低延迟脱颖而出。本文涵盖Spark概述、核心组件(包括Spark Core、SQL、Streaming和MLlib)及其在数据预处理、批处理分析、交互式查询、实时处理和机器学习中的应用。通过理解Spark内部机制和实践应用,可提升大数据处理效率,发挥其在各行业的潜力。
|
5月前
|
消息中间件 分布式计算 关系型数据库
使用Apache Spark从MySQL到Kafka再到HDFS的数据转移
使用Apache Spark从MySQL到Kafka再到HDFS的数据转移
|
6月前
|
机器学习/深度学习 数据采集 算法
探索XGBoost:自动化机器学习(AutoML)
探索XGBoost:自动化机器学习(AutoML)
286 40

推荐镜像

更多
下一篇
无影云桌面