Apache Spark Python 到 Scala 的翻译

Posted

技术标签:

【中文标题】Apache Spark Python 到 Scala 的翻译【英文标题】:Apache Spark Python to Scala translation 【发布时间】:2015-08-18 09:05:48 【问题描述】:

如果我没记错的话,Apache YARN 会接收 Application Master 和 Node Manager 作为 JAR 文件。它们在 YARN 集群的节点上作为 Java 进程执行。 当我使用 Python 编写 Spark 程序时,它是否以某种方式编译成 JAR? 如果不是,Spark 怎么能在 YARN 集群节点上执行 Python 逻辑?

【问题讨论】:

【参考方案1】:

PySpark 驱动程序使用 Py4J (http://py4j.sourceforge.net/) 启动 JVM 并创建 Spark 上下文。用 Python 编写的 Spark RDD 操作映射到 PythonRDD 上的操作。

在远程工作人员上,PythonRDD 启动运行 Python 的子进程。数据和代码使用管道从 Remote Worker 的 JVM 传递到其 Python 子进程。

因此,您的 YARN 节点必须安装 python 才能正常工作。

python 代码不会编译为 JAR,而是使用 Spark 分布在集群中。为了使这成为可能,用 Python 编写的用户函数使用以下代码腌制https://github.com/apache/spark/blob/master/python/pyspark/cloudpickle.py

来源:https://cwiki.apache.org/confluence/display/SPARK/PySpark+Internals

【讨论】:

以上是关于Apache Spark Python 到 Scala 的翻译的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Apache Spark Dataframes (Python) 执行 Switch 语句

Apache Spark:如何在Python 3中使用pyspark

spark读取hbase数据,如果表存在则不做任何操作,如果表不存在则新建表。

为啥 Apache-Spark - Python 在本地比 pandas 慢?

Apache Spark优化

Apache Spark 使用的 python 版本