Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.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 何时为Pyspark中的广播调用“.value”?_Apache Spark_Pyspark - Fatal编程技术网

Apache spark 何时为Pyspark中的广播调用“.value”?

Apache spark 何时为Pyspark中的广播调用“.value”?,apache-spark,pyspark,Apache Spark,Pyspark,以下哪一项是次优的 ## First version ## def myfunc(val, listparam): return val in listparam.value # .value in function mylist_bc = sc.broadcast(mylist) rdd.map(lambda val:myfunc(val, mylist_bc)) ## Second version ## def myfu

以下哪一项是次优的

    ## First version ##
    def myfunc(val, listparam):
        return val in listparam.value  # .value in function

    mylist_bc = sc.broadcast(mylist)
    rdd.map(lambda val:myfunc(val, mylist_bc))


    ## Second version ##
    def myfunc(val, listparam):
        return val in listparam

    mylist_bc = sc.broadcast(mylist)
    rdd.map(lambda val:myfunc(val, mylist_bc.value))  # .value outside function
如果第二个版本的函数不知道我使用的是广播值,那么可以使用第二个版本进行广播吗?我想它可能会干扰广播。

创建广播变量后,应该在集群上运行的任何函数中使用它而不是值v,这样v就不会被多次发送到节点

我会使用选项#1—您知道执行器将使用广播变量

如果将在驱动程序上计算广播变量的值,并将其作为常规变量发送给执行器,则选项#2可能有问题