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数据,如果表存在则不做任何操作,如果表不存在则新建表。