Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark Spark:从任务中确定驱动程序地址_Apache Spark_Pyspark - Fatal编程技术网

Apache 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任务(在执行器中运行)向驱动程序计算机发送一条消息。
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)