Python 如何将多处理池分配给Spark Workers

Python 如何将多处理池分配给Spark Workers,python,apache-spark,pyspark,multiprocessing,Python,Apache Spark,Pyspark,Multiprocessing,我正在尝试使用多处理并行读取100个csv文件(然后分别并行处理)。这是我在Jupyter中运行的代码,托管在AWS中的EMR主节点上。(最终将是100k csv文件,因此需要分布式读取) 它运行正常,只是只使用主节点。 蓝线是主节点上的CPU使用率。 所有日志显示我在一台机器上运行: INFO:pyspark:172.31.29.33 如何使spark将池分配给工作人员?仔细阅读SparkSession.Builder API文档,传递给SparkSession.Builder.mast

我正在尝试使用多处理并行读取100个csv文件(然后分别并行处理)。这是我在Jupyter中运行的代码,托管在AWS中的EMR主节点上。(最终将是100k csv文件,因此需要分布式读取)

它运行正常,只是只使用主节点。

蓝线是主节点上的CPU使用率。 所有日志显示我在一台机器上运行:

 INFO:pyspark:172.31.29.33

如何使spark将池分配给工作人员?

仔细阅读SparkSession.Builder API文档,传递给SparkSession.Builder.master('xxxx')的字符串是通过以下方式连接到主节点的主机:spark://xxxx:7077. 正如user8371915所说,我不需要使用独立的本地主机。相反,此修复像一个符咒:

SparkSession.builder.master('yarn')

您使用
local
模式,因此,“master”是您仅有的节点。你还期待什么?如果您有分布式集群,则应该指向它(不要使用
local[*]
)。还有,
renameColumns
validate
应该做什么?最后一行不应该是
p.map(processTest,keys)
?@IkerJimenez我也这么想
SparkSession.builder.master('yarn')