Apache spark Spark:从任务中确定驱动程序地址
出于调试目的,我想从spark任务(在执行器中运行)向驱动程序计算机发送一条消息。Apache spark Spark:从任务中确定驱动程序地址,apache-spark,pyspark,Apache Spark,Pyspark,出于调试目的,我想从spark任务(在执行器中运行)向驱动程序计算机发送一条消息。spark.driver.host包含此信息,但我不知道如何从worker(或者从驱动程序)访问它 但司机不是你们需要的。你需要一个工人。因此,请在rdd.mapPartitions块中尝试以下代码: val localhost = java.net.InetAddress.getLocalHost val ip = java.net.NetworkInterface.getByInetAddress(localh
spark.driver.host
包含此信息,但我不知道如何从worker(或者从驱动程序)访问它
但司机不是你们需要的。你需要一个工人。因此,请在rdd.mapPartitions块中尝试以下代码:
val localhost = java.net.InetAddress.getLocalHost
val ip = java.net.NetworkInterface.getByInetAddress(localhost)
检查更精确的方法。只需通过捕获的全局变量将驾驶员的IP传递给工人:
导入套接字
驱动程序\u ip\u addr=socket.gethostbyname(socket.gethostname())
def过程_数据(数据):
#做一些工作。。。
发送日志消息(驱动程序ip地址,“你好!”)
#做更多的工作。。。
processed_data=my_rdd.map(process_data.collect())
谢谢你的回答。我的问题措辞很糟糕(很抱歉,现在问题已经解决了)——我想让工人知道驱动程序IP。但我现在看到了一个非常简单的解决方案:只需使用广播变量(或Python中的全局常量)将驱动程序IP广播给工作者。我想我有一个解决办法。
val localhost = java.net.InetAddress.getLocalHost
val ip = java.net.NetworkInterface.getByInetAddress(localhost)