专栏名称: 36大数据
关注大数据和互联网趋势,最大,最权威,最干货的大数据微信号(dashuju36)。大数据第一科技媒体。不发软文,只做知识分享。
目录
相关文章推荐
51好读  ›  专栏  ›  36大数据

什么是 Apache Spark?大数据分析平台如是说

36大数据  · 公众号  · 大数据  · 2017-11-29 07:50

正文

请到「今天看啥」查看全文


citiesDF.select(“name”, “pop”)


要使用 SQL 接口,首先要将数据框架注册成一个临时表,之后我们就可以使用 SQL 语句进行查询:


citiesDF.createOrReplaceTempView(“cities”) spark.sql(“SELECT name, pop FROM cities”)


在后台, Apache Spark 使用名为 Catalyst 的查询优化器来检查数据和查询,以便为数据局部性和计算生成有效的查询计划,以便在集群中执行所需的计算。在 Apache Spark 2.x 版本中,Spark SQL 的数据框架和数据集的接口(本质上是一个可以在编译时检查正确性的数据框架类型,并在运行时利用内存并和计算优化)是推荐的开发方式。RDD 接口仍然可用,但只有无法在 Spark SQL 范例中封装的情况下才推荐使用。


Spark MLib


Apache Spark 还有一个捆绑许多在大数据集上做数据分析和机器学习的算法的库 (Spark MLib) 。Spark MLlib 包含一个框架用来创建机器学习管道和在任何结构化数据集上进行特征提取、选择、变换。MLLib 提供了聚类和分类算法的分布式实现,如 k 均值聚类和随机森林等可以在自定义管道间自由转换的算法。数据科学家可以在 Apache Spark 中使用 R 或 Python 训练模型,然后使用 MLLib 存储模型,最后在生产中将模型导入到基于 Java 或者 Scala 语言的管道中。


需要注意的是 Spark MLLib 只包含了基本的分类、回归、聚类和过滤机器学习算法,并不包含深度学建模和训练的工具(更多内容 InfoWorld’s Spark MLlib review )。提供深度学习管道的工作正在进行中。


Spark GraphX


Spark GraphX 提供了一系列用于处理图形结构的分布式算法,包括 Google 的 PageRank 实现。这些算法使用 Spark Core 的 RDD 方法来建模数据;GraphFrames 包允许您对数据框执行图形操作,包括利用 Catalyst 优化器进行图形查询。


Spark Streaming


Spark Streaming 是 Apache Spark 的一个新增功能,它帮助在需要实时或接近实时处理的环境中获得牵引力。以前,Apache Hadoop 世界中的批处理和流处理是不同的东西。您可以为您的批处理需求编写 MapReduce 代码,并使用 Apache Storm 等实时流媒体要求。这显然导致不同的代码库需要保持同步的应用程序域,尽管是基于完全不同的框架,需要不同的资源,并涉及不同的操作问题,以及运行它们。


Spark Streaming 将 Apache Spark 的批处理概念扩展为流,将流分解为连续的一系列微格式,然后使用 Apache Spark API 进行操作。通过这种方式,批处理和流操作中的代码可以共享(大部分)相同的代码,运行在同一个框架上,从而减少开发人员和操作员的开销。每个人都能获益。


对 Spark Streaming 方法的一个批评是,在需要对传入数据进行低延迟响应的情况下,批量微操作可能无法与 Apache Storm,Apache Flink 和 Apache Apex 等其他支持流的框架的性能相匹配,所有这些都使用纯粹的流媒体方法而不是批量微操作。


Structured Streaming


Structured Streaming(在 Spark 2.x 中新增的特性)是针对 Spark Streaming 的,就跟 Spark SQL 之于 Spark 核心 API 一样:这是一个更高级别的 API,更易于编写应用程序。在使用 Structure Streaming 的情况下,更高级别的 API 本质上允许开发人员创建无限流式数据帧和数据集。它还解决了用户在早期的框架中遇到的一些非常真实的痛点,尤其是在处理事件时间聚合和延迟传递消息方面。对 Structured Streaming 的所有查询都通过 Catalyst 查询优化器,甚至可以以交互方式运行,允许用户对实时流数据执行 SQL 查询。







请到「今天看啥」查看全文