云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

文件存储_psp游戏百度云_促销

小七 141 0

Apache Spark关键术语,解释

本文最初发布在KDnuggets上欧洲火花峰会(Spark Summit European call for Presentation)已经开放,请立即提交您的想法正如《财富》杂志的一篇文章所观察到的,调查显示,Apache Spark的人气激增:"阿帕奇的斯威夫特软件是大数据。开源技术已经流行了几年了。但2015年是Spark从一项优势技术走向真正的超级明星的一年。"Apache Spark之所以如此受欢迎,其中一个原因是因为Spark为数据工程师和数据科学家提供了一个功能强大、统一的引擎,它不仅速度快(在大规模数据处理方面比Apache Hadoop快100倍),而且易于使用。这使得数据从业者能够以更大的规模交互式地解决机器学习、图形计算、流式处理和实时交互式查询处理问题。在这篇博客文章中,我们将讨论在使用apachespark时遇到的一些关键术语。1阿帕奇火花apachespark是一个强大的开源处理引擎,它以速度、易用性和复杂的分析为中心,使用Java、Scala、Python、R和SQL中的api。Spark在内存中运行程序的速度比Hadoop MapReduce快100倍,在磁盘上运行速度快10倍。它可以用于将数据应用程序构建为库,或者交互式地执行即席数据分析。Spark支持一个库栈,包括SQL、DataFrames和Datasets、用于机器学习的MLlib、用于图形处理的GraphX和Spark流。您可以在同一个应用程序中无缝地组合这些库。同样,Spark运行在笔记本电脑、Hadoop、apachemesos、单机版或云中。它可以访问各种数据源,包括HDFS、apachecassandra、apachehbase和S3。它最初于2009年在加州大学伯克利分校开发。(请注意,Spark的创造者Matei Zaharia已经成为Databricks的CTO和麻省理工学院的教员。)自从Spark发布以来,Spark已经被各个行业的企业迅速采用。像Netflix、Yahoo和腾讯这样的互联网巨头已经在大规模地部署Spark,在超过8000个节点的集群上共同处理数PB的数据。它很快成为大数据领域最大的开源社区,拥有1000多个代码贡献者,420个ApacheSpark Meetups组中有超过187000名成员。2RDD公司apachespark的核心是将数据抽象作为对象的分布式集合的概念。这种数据抽象称为弹性分布式数据集(RDD),允许您编写转换这些分布式数据集的程序。RDD是不可变的分布式数据元素集合,可以跨机器集群存储在内存或磁盘中。数据在集群中的机器之间进行分区,这些机器可以与提供转换和操作的低级API并行操作。RDD是容错的,因为它们跟踪数据沿袭信息,以便在发生故障时自动重建丢失的数据。下面是使用Python和RDDs执行单词计数的apachespark代码片段。打开Spark Context RDD的文本文件文本文件=spark.text文件("hdfs://…")执行字数计数文本_文件.flatMap(lambda线:线.分割()).map(lambda字:(word,1)).reduceByKey(λa,b:a+b)三。数据帧像RDD一样,数据帧是不可变的分布式数据集合。与RDD不同,数据被组织成命名列,就像关系数据库中的表一样。DataFrame旨在使大型数据集的处理更加容易,它允许开发人员将一个结构强加到分布式数据集合上,从而允许更高级别的抽象;它提供了一个特定于域的语言API来操作分布式数据;并使Spark更容易被专业数据工程师以外的受众访问。下面是一个apachespark代码片段,它使用SQL和DataFrames查询和连接不同的数据源。读取JSON文件并注册temp视图上下文.jsonFile("s3n://…".createOrReplaceTempView("json")执行SQL查询结果=上下文.sql("""SELECT*FROM people JOIN json…""")4数据集Spark 1.6中引入的Spark数据集的目标是提供一个API,允许用户轻松地表达域对象上的转换,同时还提供健壮的Spark SQL执行引擎的性能和优点。注意,从Spark 2.0开始,DataFrame API将与Datasets API合并,统一所有库的数据处理功能。由于统一,开发人员现在需要学习或记住的概念越来越少,只需要使用一个称为Dataset的高级和类型安全API。概念上,Spark DataFrame是泛型对象Dataset[Row]集合的别名,其中Row是通用的非类型化JVM对象。相比之下,Dataset是强类型JVM对象的集合,由Scala或Java中定义的case类决定。//定义一个case类,它表示特定于类型的scalajvm对象案例类人员(电子邮件:String,智商:Long,姓名:String)//读取JSON文件并使用case类转换为Dataset值ds=spark.read.json("……)。作为[人]5MLlib公司apachespark提供了一个通用的机器学习库MLlib,它是为简单、可伸缩性和易于与其他工具集成而设计的。借助Spark的可伸缩性、语言兼容性和速度,数据科学家可以更快地解决和迭代他们的数据问题。从apachespark项目一开始,MLlib就被认为是Spark成功的基础。MLlib的主要好处是它允许数据科学家专注于他们的数据问题和模型,而不是解决分布式数据(如基础设施、配置等)的复杂性。数据工程师可以使用Spark易于使用的API专注于分布式系统工程,而数据科学家可以利用Spark core的规模和速度。同样重要的是,Spark MLlib是一个通用库,为大多数用例提供算法,同时允许社区为特殊用例构建和扩展它。要回顾机器学习的关键术语,请参阅马修·梅奥的机器学习关键术语,解释。6ML管道通常,当运行机器学习算法时,它涉及一系列任务,包括预处理、特征提取、模型拟合和验证阶段。例如,在对文本文档进行分类时,可能涉及到文本分割和清理、提取特征以及使用交叉验证训练分类模型。虽然每个阶段都有很多库可以使用,但是连接点并不像看上去那么容易,尤其是对于大规模的数据集。大多数ML库不是为分布式计算而设计的,或者它们不提供对管道创建和调优的本机支持。ML管道是MLlib的高级API,它位于火花.ml"包裹。管道由一系列阶段组成。管道级有两种基本类型:变压器和估计器。转换器将数据集作为输入,并生成一个扩充的数据集作为输出。E、 g.标记器是一种转换程序,它将包含文本的数据集转换为具有标记化单词的数据集。估计器必须首先与输入数据集相匹配才能生成模型,模型是转换输入数据集的转换器。E、 logistic回归是一种在数据集上训练标签和特征并生成logistic回归模型的估计量。7石墨GraphX是apachespark中用于图形和图形并行计算的组件。在较高的层次上,GraphX通过一个图抽象扩展了Spark RDD:一个属性附加到每个顶点和边的有向多图。为了支持图计算,GraphX公开了一组基本运算符(例如子图、joinVertices和aggregateMessages)以及pregelapi的优化变体。此外,GraphX还包括越来越多的图形算法和构建器集合,以简化图形分析任务。8火花流Spark Streaming是核心Spark API的扩展,它允许数据工程师和数据科学家处理来自不同来源的实时数据,包括(但不限于)Kafka、Flume和Amazon Kinesis。这些处理过的数据可以推送到文件系统、数据库和实时仪表板。它的关键抽象是一个离散化的流,或者简言之,一个数据流,它表示被分成小批量的数据流。数据流构建在RDDs上,RDDs是Spark的核心数据抽象。这使得Spark流能够与MLlib和sparksql等任何其他Spark组件无缝集成。这种不同数据处理能力的统一是Spark Streaming迅速采用的关键原因。这使得开发人员很容易使用单一框架来满足他们的所有处理需求。9结构化流媒体结构化流作为ApacheSpark2.0的一部分引入,是构建在Spark SQL引擎之上的高级流。它是一个声明性API,它扩展了数据帧和数据集,以支持批处理、交互和流式查询。这种方法的优点是它允许程序员将他们处理静态数据集(即批处理)的经验应用到无限数据集(即流式处理)中。10火花-软件包.org火花-软件包.org是一个社区包索引,用于跟踪使用apachespark的越来越多的开源包和库。Spark包使用户能够很容易地找到、讨论、评分和安装Spark的任何版本的包,并使开发人员更容易提供包。Spark包的特点是与各种数据源、管理工具、高级领域特定库、机器学习算法、代码示例和其他Spark内容的集成。示例包包括Spark CSV(现在已包含在Spark 2.0中)和Spark ML集成包(包括GraphFrames和TensorFrames)。11催化剂优化器sparksql是apachespark中技术含量最高的组件之一。它同时支持SQL查询和dataframeapi。Spark SQL的核心是Cataly