This question already has answers here:
getting number of visible nodes in PySpark

(5个答案)


3年前关闭。





我需要使用此参数,那么如何获得工人数?
像在Scala中一样,我可以致电sc.getExecutorMemoryStatus以获得可用的工人人数。但是在PySpark中,似乎没有暴露任何API来获取此数字。

最佳答案

在scala中,getExecutorStorageStatusgetExecutorMemoryStatus都返回执行程序的数量,包括驱动程序。
像下面的示例代码片段

/** Method that just returns the current active/registered executors
        * excluding the driver.
        * @param sc The spark context to retrieve registered executors.
        * @return a list of executors each in the form of host:port.
        */
       def currentActiveExecutors(sc: SparkContext): Seq[String] = {
         val allExecutors = sc.getExecutorMemoryStatus.map(_._1)
         val driverHost: String = sc.getConf.get("spark.driver.host")
         allExecutors.filter(! _.split(":")(0).equals(driverHost)).toList
       }


But In python api it was not implemented

@DanielDarabos answer也确认了这一点。

相当于python中的...

sc.getConf().get("spark.executor.instances")


编辑(python):

可能是sc._conf.get('spark.executor.instances')

关于scala - 如何获取PySpark中的 worker (执行者)人数? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38660907/

10-16 16:16