科普SparkSpark是什么如何使用Spark

关于Spark的科普Spark是什么以及如何使用Spark?

这篇自写的Spark入门实用教程,适合有一定Hadoop和数据分析经验的朋友。

Spark简介

Spark是一个开源计算框架平台,使用这个平台可以自动将数据分析程序分发到集群中的不同机器上。
解决大数据快速计算问题;它还提供了一种优雅的编程范例,允许数据分析师通过编写类似于本机机器的数据分析程序来实现大规模并行计算。

Spark项目由多个紧密耦合的组件组成。

Core是Spark的核心功能,实现了Spark的核心功能:作业调度;内存管理;错误恢复;存储系统与其他模块尤其是SparkCore之间的交互也定义了弹性分布式数据。
Sets(RDD)API是Spark内存计算和并行计算的主要编程抽象。

各种数据分析分析,包括SparkSQL的连接关系型数据库或者HadoopHive的查询组件SparkCore有一套软件可以满足计算操作的需求。
时序数据计算组件SparkSteaming支持常见机器学习算法并行计算组件MLlib;支持并行图计算组件GraphX等

进一步支持数千台计算机上的可扩展计算;SparkCore底层是HadoopYARN;它支持多种集群管理器,包括ApacheMesos或者Spark自己的standalone独立调度。

Spark部署

安装Spark比较简单,只需在机器上配置最新版本的JAVA环境即可;下载并运行编译好的Spark软件包。
国内。
当然,您可以根据具体环境使用Maven编译所需的Spark功能。

Spark有两种部署方式;一种是本地部署,另一种是大规模部署。
前者机器只需要在本地交互环境中运行spark-shell.sh脚本,常用于程序测试,后者只需根据集群环境即可使用。
部署在HadoopYARN集群上;或用于ApacheMesos等。

他们之间擦出火花附带的独立调度程序是实现Spark集群环境的最简单方法,您只需在多台联网计算机上安装Spark并在其中一台计算机上启动集群管理器即可。
通过start-master.sh脚本);然后启动其他计算机上的工作节点(通过start-slave.sh脚本)并连接到管理器。

Spark编程

使用Spark编程;您首先需要安装本地Spark环境并启动Spark上下文管理器进行连接。
到本地计算机(本地部署)或到集群上的集群管理器(集群部署);然后使用Spark提供的心理界面程序。

支持Spark的原生语言是Scala,它支持JVM。
这避免了其他语言的数据转换过程中性能或信息的损失。
但随着Spark项目的不断发展,使用Python和PySpark包或者R和SparkR包进行Spark编程也是不错的选择。

无论使用哪种编程语言,使用Spark进行数据分析的关键在于掌握Spark的抽象编程范式,涉及4个步骤的基本过程:

初始化SparkContext

SparkContext是Spark上下文管理器(也称为驱动程序),向Spark工作节点发送命令它主要负责获取计算结果。
但数据分析师不需要关注具体细节,只需使用程序即可。
SparkContext接口。

创建RDD


因为弹性分布数据集RDD是Spark用于多机并行计算的主要数据结构;使用Spark进行数据分析,需要使用SparkContext读取Spark集群内的外部数据。

设计数据转换任务


那是,函数的结果返回一个新的RDD,它只是图计算中的一个中间节点。
不仅Hadoop的Map()相当于映射算子,Spark的filter()过滤算子也相当于;unique()去重运算符;使用sample()采样算子填充多个RDD集合的交集,等待采集操作。

设计数据以执行操作


那是,函数结果返回结果给SparkContext;或写入result.internal操作系统。
与Hadoop的Reduce()运算符相同;它按照一定的函数处理两条数据并返回相同的数据类型,以及Spark的collect()直接返回运算符;count()计数运算符;take()/也支持。
top()部分数据运算符;foreach()返回迭代计算运算符和其他函数。

Spark编程范式的本质是有向无环图模式下的惰性。
计算中

那是,使用上述方法编程时,Spark会自动对上述RDD和转换算子进行转换。
有向无环图的数据工作流程;仅当触发操作算子时,数据工作流才会按需执行。
此外,为了进一步提高计算性能,Spark通常运行在内存中,并自动进行内存分配管理;当然,观察者可以通过persist()运算符将内存数据持久提交到磁盘。
数据以方便调试或重用。

在R环境中使用Spark事件

最新版本的RStudio完全集成了Spark数据分析功能,您可以扩展接口基础。
为了更方便的使用SparkR官方Spark,主要需要安装两个包,即sparklyr和dplyr。
他们之中,Sparklyr包提供了更加简洁易用的SparkR编程接口,dplyr包提供了数据操作接口,可以集成到dplyr包中,同时支持连接主流SQL/NoSQL数据库,同时将数据操作与数据库分离数据集。
结构,这基本上适用于Spark的原生算子。

第一次如果完成的话,首先在机器中安装所需的软件包和Spark环境:

然后运行以下命令从小实例初始化SparkContext;大家可能会发现,除了导入RDD数据和导出数据之外,其他数据处理操作都和在本机进行数据分析是一样的。

另外,除了dplyr接口之外;Sparklyr配备了性能工程和常见的机器学习算法。
80%的常见数据分析和挖掘操作;剩下的20%是自定义算法或需要更多Spark接口知识才能实现流处理、图计算等任务的任务。

DataikuDSS—5.Coderecipe介绍

本文将介绍DataikuDSS中的codeReceive,通过编写代码来完成数据集之间的处理。
点击具体信息,右侧会显示可用的CodeRecipes,例如Python、R、Shell等。
Dataiku根据数据类型识别触发器,它评估或未正确安装的配方会显示在灰色环境中。
例如Iris_data1数据集支持Python、R、Shell等工具。
创建一个PythonCodeReceive并杀死多个输入和输出数据。
编辑工具左侧显示预定义名称和字段的信息,右侧为代码编辑区域。
在Python中,Dataiku将数据集转换为PandasDataframes,反之亦然。
用户可以在Pandas中进行数据清理和转换操作。
CodeReceive都是放在Python环境下的数据,无法实时查看结果。
为了解决这个问题,Dataiku提供了在码本中编辑CodeReceipt的功能。
用户复制优惠券代码,除非他们已完成给定的扫描,并且优惠券会自动与CodeReceipt匹配。
这种设计为用户提供了更流畅的构建过程。
请注意,当CodeRecipe关闭时,Codecille仍会在后台运行,这可能会造成资源浪费。
一旦写入CodeReceipt,用户就可以识别并运行代码以根据输入数据集执行逻辑。
Dataiku自动监控数据集和代码的一致性,如果不一致则报告错误。
在高级设置中,您可以配置Python执行环境以匹配所需的代码和数据大小。
同样,Retrieve逻辑代码兼容R、SparkScala、SparkR和PySpark,将数据集转换为数据格式,然后进入数据提供。
使用CodeReceiveforR、SparkScala、SparkR和PySpark与Python非常相似。
SparkSQLCodeReceive允许手动设置数据输出,用户可以直接使用SparkSQL处理数据集,使得使用SparkSQL变得非常方便。
用户可以将数据集作为数据表查看。
同样,在应用程序的高级设置中配置spark实现配置。
除了主CodeRecipe之外,SQL类型Recipe操作SQL表,Shell脚本调用DataikuDSS对象和参数来处理数据。
其他CodeRecipes正在调查中。
DataikuDSS提供了数据转换和Dataframes的途径,保持了CodeRecipe的灵活性,适合使用众所周知的代码来探索和处理数据的用户。
本文属于DataikuDSS内容专栏的一部分,包括产品介绍、基本概念、数据集创建、探索、可视化Recipe介绍、CodeRecipe介绍、Lab分析、可视化预测模型、调度与编排等。