Spark 是大数据开发的必会技能。面试中经常被问到的问题就是 Spark 是什么,或者请介绍一下
Spark,今天的文章主要对这个问题做出讲解。很多人的回答都不够准确,这个问题最为准确的描述可以在官网寻找。

<>1.整体介绍

打开官网可以看到一行醒目的表与:

Unified engine for large-scale data analytics

翻译一下就是:用于大规模数据分析的统一引擎。继续往下看:

What is Apache Spark™?
Apache Spark™ is a multi-language engine for executing data engineering, data
science, and machine learning on single-node machines or clusters.

这里对我们的问题做出了回答:Apache Spark™ 是一种多语言引擎,用于在单节点机器或集群上执行数据工程、数据科学和机器学习。

归纳一下要点:Spark 是一个计算引擎,用于大规模数据的计算,支持多种编程语言。

<>2.特征

上面给出的是一个总体的描述,对于更加具体的一些特征的介绍,官网也做出了回答:

Key features
Simple. Fast. Scalable. Unified.

Spark的特征用四个词语概括就是:简单、速度快、可扩展、统一性。更加具体的描述官网也给出了说明:

Batch/streaming data

Unify the processing of your data in batches and real-time streaming, using
your preferred language: Python, SQL, Scala, Java or R.

批处理/流处理:可以使用 Python、SQL、Scala、Java 或 R,通过批量处理和实时流式处理的方式统一处理数据。

SQL analytics

Execute fast, distributed ANSI SQL queries for dashboarding and ad-hoc
reporting. Runs faster than most data warehouses.

SQL 分析:为仪表板和临时报告执行快速、分布式的 ANSI SQL 查询。比大多数数据仓库运行得更快。

Data science at scale

Perform Exploratory Data Analysis (EDA) on petabyte-scale data without having
to resort to downsampling

大规模数据科学:对 PB 级数进行探索性数据分析 (EDA),而无需进行下采样

Machine learning

Train machine learning algorithms on a laptop and use the same code to scale
to fault-tolerant clusters of thousands of machines.

机器学习:在笔记本电脑上训练机器学习算法,并使用相同的代码扩展到数千台机器的容错集群。

<>3.生态

Apache Spark™ integrates with your favorite frameworks, helping to scale them
to thousands of machines.

Data science and Machine learning

SQL analytics and BI

Storage and Infrastructure

Spark 整合了多种框架,能够将这些框架扩展到数千台机器。这些框架包括:

* 数据科学和机器学习:scikit-learn,pandas,TensorFlow,PyTorch,mlflow,R
* SQL 分析和 BI:Superset,Power BI,Looker,redash,tableau,dbt
* 存储和基础设施:Elasticsearch,MongoDB,Kafka,delta
lake,kubernetes,Airflow,Parquet,SQL Server,cassandra,orc
<>4.核心模块

Spark Core:提供了 Spark 最基础与最核心的功能,Spark 其他的功能如:Spark SQL,Spark
Streaming,GraphX,MLlib 都是在Spark Core 的基础上进行扩展的。

Spark SQL:Spark 用来操作结构化数据的组件。通过 Spark SQL,用户可以使用 SQL 或者 Apache Hive 版本的 SQL
方言(HQL)来查询数据。

Spark Streaming:Spark 平台上针对实时数据进行流式计算的组件,提供了丰富的处理数据流的 API。

Spark MLlib:MLlib 是 Spark 提供的一个机器学习算法库。MLlib
不仅提供了模型评估、数据导入等额外的功能,还提供了一些更底层的机器学习原语。

Spark GraphX:GraphX 是 Spark 面向图计算提供的框架与算法库。

<>5.总结

文章的最后对 Spark 是什么这个问题做一个总结:

* Spark是一种基于内存的快速、通用、可扩展的大数据分析计算引擎。
* Spark Core 中提供了 Spark 最基础与最核心的功能。
* Spark SQL 是 Spark 用来操作结构化数据的组件。通过 Spark SQL,用户可以使用 SQL 或者 Apache Hive 版本的
SQL 方言(HQL)来查询数据。
* Spark Streaming 是 Spark 平台上针对实时数据进行流式计算的组件,提供了丰富的处理数据流的 API。

技术
今日推荐
阅读数 148
阅读数 49
阅读数 46
阅读数 39
阅读数 39
阅读数 30
下载桌面版
GitHub
百度网盘(提取码:draw)
Gitee
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:766591547
关注微信