1.广播变量(broadcast variable)为只读变量,它由运行SparkContext的驱动程序driver创建后发送给会参与计算的节点。对那些需要让各工作节点高效地访问相同数据的应用场景,比如机器学习,这非常有用。
2.collect函数是一个Spark执行函数,它将整个RDD以Scala(Python或Java)集合的形式返回给驱动程序driver所在节点。通常只在需将结果返回到driver所在节点以供本地处理时,才调用collect函数。注意,collect函数一般仅在的确需要将整个结果集返回驱动程序driver并进行后续处理时才有必要调用。如果在一个非常大的数据集上调用该函数,可能耗尽driver的可用内存,进而导致程序崩溃。高负荷的处理应尽可能地在整个集群上进行,从而避免driver成为系统瓶颈。然而在不少情况下,将结果收集到driver的确是有必要的,很多机器学习算法的迭代过程便属于这类情况。