# 2\. 为什么是 Spark 和 Python

> **磨刀不误砍柴工。** – 中国古代谚语

我想从以下两个部分回答这个问题：

## 2.1\. 为什么是 Spark

我认为 [Apache Spark™](http://spark.apache.org/) 官网的以下四个主要原因足以说服您使用 Spark。

1.  速度

    在内存中运行程序比 Hadoop MapReduce 快 100 倍，或者比磁盘上运行快 10 倍。

    Apache Spark 拥有先进的 DAG 执行引擎，支持非循环数据流和内存计算。

    > ![https://runawayhorse001.github.io/LearningApacheSpark/_images/logistic-regression.png](img/72748fa31cb48a5062a2fc7949bd0b45.jpg)
    > 
    > Hadoop 和 Spark 中的逻辑回归

1.  易于使用

    使用 Java，Scala，Python，R 快速编写应用。

    Spark 提供 80 多个高级操作符，可以轻松构建并行应用。 您可以从 Scala，Python 和 R shell 中以交互方式使用它。

2.  通用性

    结合SQL，流式和复杂的分析。

    Spark 支持很多库，包括 SQL 和 DataFrames，用于机器学习的 MLlib，GraphX 和 Spark Streaming。您可以在同一个应用中无缝地组合这些库。

    > [![https://runawayhorse001.github.io/LearningApacheSpark/_images/stack.png](img/d3b112475692c0421480c01cd029cf09.jpg)](https://runawayhorse001.github.io/LearningApacheSpark/_images/stack.png)
    > 
    > Spark 技术栈

1.  随处运行

    Spark 在 Hadoop，Mesos，独立或云端运行。 它可以访问各种数据源，包括 HDFS，Cassandra，HBase 和 S3。

    > [![https://runawayhorse001.github.io/LearningApacheSpark/_images/spark-runs-everywhere.png](img/b9eb842264e6a48a42ecf5f142e32414.jpg)](https://runawayhorse001.github.io/LearningApacheSpark/_images/spark-runs-everywhere.png)
    > 
    > Spark 平台

## 2.2\. 为什么是 PySpark?

无论你喜欢与否，Python 都是最受欢迎的编程语言之一。

> ![https://runawayhorse001.github.io/LearningApacheSpark/_images/languages.jpg](img/348c0d7bc8db0d630042e5faffd2d647.jpg)
> 
> KDnuggets 分析/数据科学 2017 软件调查，来自 [kdnuggets](http://www.kdnuggets.com/2017/05/poll-analytics-data-science-machine-learning-software-leaders.html)。
