Apache Spark机器学习.1.1 Spark概述和技术优势

简介:

摘要

Spark机器学习简介

本章从机器学习和数据分析视角介绍Apache Spark,并讨论Spark中的机器学习计算处理技术。本章首先概括介绍Apache Spark,通过与MapReduce等计算平台进行比较,展示Spark在数据分析中的技术优势和特点。接着,讨论如下五个方面的内容:

机器学习算法与程序库

Spark RDD和DataFrame

机器学习框架

Spark pipeline技术

Spark notebook技术

以上是数据科学家或机器学习专业人员必须掌握的五项最重要的技术内容,以便于充分运用Spark处理计算优势。同时,本章将涵盖以下六个主题:

Spark概述和技术优势

机器学习算法和Spark机器学习库

Spark RDD和Dataframe

机器学习框架、RM4E和Spark计算

机器学习工作流和Spark pipeline技术

Spark notebook技术简介


1.1 Spark概述和技术优势


本节对Apache Spark计算平台作总体介绍,通过与MapReduce等计算平台对比,总结Spark计算的优势。然后,简要介绍Spark计算如何适用于现代机器学习和大数据分析。

通过本节学习,读者将对Spark计算有一个基本了解,同时掌握一些基于Spark计算开展机器学习的技术优点。

1.1.1 Spark概述

Apache Spark是面向大数据快速处理的计算框架,该框架包含一个分布式计算引擎和一个专门设计的编程模型。2009年,Spark起源于美国加州大学伯克利分校AMPLab实验室的一个研究项目,然后在2010年成为Apache软件基金完全开源项目。之后,Apache Spark经历了指数级增长,目前Spark是大数据领域最活跃的开源项目。

Spark计算利用了内存分布式计算方法,该方法使得Spark计算成为最快的计算方式之一,尤其是对于反复迭代计算。根据多次测试表明,它的运行速度比Hadoop MapReduce快100倍以上。

Apache Spark是一个统一的平台,平台由Spark核心引擎和四个库组成:SparkSQL、Spark Streaming、MLlib和GraphX。这四个库都有Python、Java和Scala的编程API。

除了上面提到的四个内置库,Apache Spark还有数十个由第三方提供的程序包,这些程序包可用于处理数据源、机器学习,以及其他任务。

 

Apache Spark产品版本更新周期为3个月,Spark 1.6.0版本更新于2016年1月4日。Apache Spark 1.3版本包含有DataFrames API和ML Pipelines API。自Apache Spark 1.4版本开始,程序已默认包含R界面(SparkR)。

读者可以通过链接http://spark.apache.org/downloads.html下载Apache Spark。想要安装和运行Apache Spark,可以到链接http://spark.apache.org/docs/latest/下载最新说明文档。

1.1.2 Spark优势

相对于MapReduce等其他大数据处理平台,Apache Spark拥有诸多优势。其中,比较突出的两项优势是快速运行和快速写入能力。

Apache Spark保留了诸如可扩展性和容错能力等一些MapReduce最重要的优势,并且利用新技术对其保留的优势进行了大幅提升。

与MapReduce相比,Apache Spark的引擎可以为用户执行更为常见的有向无环图(DAG)。因此,使用Apache Spark来执行MapReduce风格的图计算,用户可以获得比在Hadoop平台上更好的批处理性能。

Apache Spark拥有内存处理能力,并且使用了新的数据提取方法,即弹性分布式数据集(RDD),使得Apache Spark能够进行高度迭代计算和响应型编程,并且扩展了容错能力。

同时,Apache Spark只需要几行简短的代码就可以使复杂的pipeline展现变得更为容易。最为人所熟知的是,它可以轻松创建算法,捕捉复杂甚至是混乱数据的真谛,并帮助用户得到实时处理结果。

Apache Spark团队为Spark总结的功能包括:

机器学习中的迭代算法

交互式数据挖掘和数据处理

兼容Hive数据仓库并可提升百倍运行速度

流处理

传感器数据处理

对于在实际应用中需要处理上述问题的数据科学家,Apache Spark在处理以下问题时可以轻而易举地显现出其优势:

并行计算

交互式分析

复杂计算

大部分用户对于Apache Spark在速度和性能上的优势都很满意,但是部分人也注意到Apache Spark产品仍在不断完善。

http://svds.com/user-cases-for-apache-spark/提供了一些展现Spark优势的实例。

相关文章
|
7月前
|
机器学习/深度学习 人工智能 自然语言处理
探索机器学习中的自然语言处理技术
【2月更文挑战第31天】 随着人工智能的飞速发展,自然语言处理(NLP)技术在机器学习领域扮演着越来越重要的角色。本文旨在深入探讨NLP的关键技术,包括语言模型、词嵌入和深度学习方法,并分析这些技术如何相互协作,以实现更高效的文本分析和理解。通过案例研究和最新研究成果的介绍,我们展示了NLP在实际应用中的强大潜力,以及它如何推动人机交互和信息检索系统的革新。
200 0
|
3月前
|
消息中间件 资源调度 API
Apache Flink 流批融合技术介绍
本文源自阿里云高级研发工程师周云峰在Apache Asia Community OverCode 2024的分享,内容涵盖从“流批一体”到“流批融合”的演进、技术解决方案及社区进展。流批一体已在API、算子和引擎层面实现统一,但用户仍需手动配置作业模式。流批融合旨在通过动态调整优化策略,自动适应不同场景需求。文章详细介绍了如何通过量化指标(如isProcessingBacklog和isInsertOnly)实现这一目标,并展示了针对不同场景的具体优化措施。此外,还概述了社区当前进展及未来规划,包括将优化方案推向Flink社区、动态调整算子流程结构等。
420 31
Apache Flink 流批融合技术介绍
|
2月前
|
存储 分布式计算 druid
大数据-149 Apache Druid 基本介绍 技术特点 应用场景
大数据-149 Apache Druid 基本介绍 技术特点 应用场景
67 1
大数据-149 Apache Druid 基本介绍 技术特点 应用场景
|
2月前
|
存储 分布式计算 NoSQL
大数据-144 Apache Kudu 基本概述 数据模型 使用场景
大数据-144 Apache Kudu 基本概述 数据模型 使用场景
39 0
|
7月前
|
机器学习/深度学习 人工智能 运维
【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)(二)
【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)
299 1
|
7月前
|
机器学习/深度学习 人工智能 自然语言处理
【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)(一)
【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)
372 1
|
4月前
|
分布式计算 大数据 数据处理
Apache Spark的应用与优势:解锁大数据处理的无限潜能
【8月更文挑战第23天】Apache Spark以其卓越的性能、易用性、通用性、弹性与可扩展性以及丰富的生态系统,在大数据处理领域展现出了强大的竞争力和广泛的应用前景。随着大数据技术的不断发展和普及,Spark必将成为企业实现数字化转型和业务创新的重要工具。未来,我们有理由相信,Spark将继续引领大数据处理技术的发展潮流,为企业创造更大的价值。
|
3月前
|
分布式计算 Java Apache
Apache Spark Streaming技术深度解析
【9月更文挑战第4天】Apache Spark Streaming是Apache Spark生态系统中用于处理实时数据流的一个重要组件。它将输入数据分成小批次(micro-batch),然后利用Spark的批处理引擎进行处理,从而结合了批处理和流处理的优点。这种处理方式使得Spark Streaming既能够保持高吞吐量,又能够处理实时数据流。
75 0
|
4月前
|
Rust 安全 开发者
惊爆!Xamarin 携手机器学习,开启智能应用新纪元,个性化体验与跨平台优势完美融合大揭秘!
【8月更文挑战第31天】随着互联网的发展,Web应用对性能和安全性要求不断提高。Rust凭借卓越的性能、内存安全及丰富生态,成为构建高性能Web服务器的理想选择。本文通过一个简单示例,展示如何使用Rust和Actix-web框架搭建基本Web服务器,从创建项目到运行服务器全程指导,帮助读者领略Rust在Web后端开发中的强大能力。通过实践,读者可以体验到Rust在性能和安全性方面的优势,以及其在Web开发领域的巨大潜力。
45 0
|
4月前
|
SQL 分布式计算 数据处理

推荐镜像

更多