pyspark vs python vs numpy 理解?

yuq*_*qli 1 python numpy apache-spark pyspark

我无法理解 pyspark、spark 和 python 之间的关系。我试图阅读有关操作系统的内容,但仍然有点困惑。

所以我搜索的是:

  1. Pyspark 是 spark 的 python shell。
  2. Spark 是一个计算引擎,可能负责或分发文件到节点,收集它们并返回它们?
  3. shell 是一个程序,它通过在 /bin 目录中搜索来解释命令并转换为可执行代码。

但是当我写程序的时候,我很困惑:

  1. 在 Pyspark 中,我们可以导入 Numpy 并创建 Numpy 对象。那么,Spark 是否也支持 Numpy 项目呢?

  2. 我们可以写“from pyspark import SparkContext”,那么pyspark是否和numpy一样是一个库?

  3. spark中的RDD对象存储在哪里?我可能在这里缺乏一些知识,但究竟什么是 Python 对象/numpy 对象/spark 对象?它们是否存储在物理内存的某个地方?它们在文件系统中吗?来自不同编程库的对象如何在python环境中一起运行?

我觉得我可能在这里搞乱了抽象级别,所以任何指导都会有所帮助!谢谢。

des*_*aut 7

非常简短(您的问题太广泛了,实际上这不是进行此类查询的最佳地点):

  1. pyspark 是Spark的 Python API,而不仅仅是一个 shell(虽然它确实包含一个 shell);用pyspark编写的程序可以提交到Spark集群,分布式运行。
  2. 或多或少正确...
  3. 粗略地说也是正确的(尽管无关紧要)。
  4. Numpy 对象可以与py spark一起使用,它们确实在需要的地方被大量使用 - 例如,py spark的线性代数和机器学习库。当然,它们在其他 Spark API(Scala/Java/R)中是没有用的。
  5. 我不太确定(Python)库的正式定义,但是是的,pyspark 也可以被认为是一个库(或者可能是一组库,因为 pyspark 中有更多的子包,如 Spark SQL &火花ML);最近它也可以通过PyPi 使用(即它可以通过 安装pip)。
  6. ......好吧,在这里你变得非常广泛......让我说引擎盖下发生的事情的很大一部分是由于Py4j,pyspark背后的无名英雄......