den*_*s.s 5 python apache-spark
我知道它利用pickle并跨节点运送东西并保存在内存中等等.令我困惑的是为什么在pyspark中使用它的语法工作.
def main():
sc = SparkContext()
someValue = rand()
V = sc.broadcast(someValue)
A = sc.parallelize().map(worker)
def worker(element):
element *= V.value
Run Code Online (Sandbox Code Playgroud)
为什么上面的代码没有得到"V"没有定义的投诉?我在pyspark中搜索了与广播相关的源代码,但没有得到任何线索.
来自 Spark 研究论文\n Spark:使用工作集的集群计算\nMatei Zaharia、Mosharaf Chowdhury、Michael J. Franklin、Scott Shenker、Ion Stoica。HotCloud 2010。2010 年 6 月。
\n\n\n\n共享变量:Spark 中的两种类型的共享变量,即广播变量和累加器,是使用具有自定义序列化格式的类来实现的。\n 当创建一个值为 v 的广播变量 b 时,\nv 会保存到 a共享文件系统中的文件。b 的序列化\n 形式是该文件的路径。当在工作节点上查询 b\xe2\x80\x99s 值时,Spark 首先检查 v 是否在本地缓存中,如果不在,则从文件系统中读取。\n我们最初使用 HDFS 来广播变量,但我们正在开发更高效的流媒体广播系统。
\n
| 归档时间: |
|
| 查看次数: |
10756 次 |
| 最近记录: |