broadcast
用于将对象运送到每个工作程序节点。该对象将在该节点上的所有分区之间共享(并且值/即对象对于集群中的每个节点都是相同的)。广播的目的是在工作节点上的许多不同任务/分区中使用相同数据时节省网络成本。
mapPartitions
相反,是RDD上可用的一种方法map
,仅在分区上像一样工作。是的,您可以定义新的对象,例如jdbc连接,该对象对于每个分区都是唯一的。但是,您不能在不同的分区之间共享它,在不同的节点之间共享就更少。
在Apache Spark中,使用mapPartitions和结合使用广播变量和map有什么区别?
broadcast
用于将对象运送到每个工作程序节点。该对象将在该节点上的所有分区之间共享(并且值/即对象对于集群中的每个节点都是相同的)。广播的目的是在工作节点上的许多不同任务/分区中使用相同数据时节省网络成本。
mapPartitions
相反,是RDD上可用的一种方法map
,仅在分区上像一样工作。是的,您可以定义新的对象,例如jdbc连接,该对象对于每个分区都是唯一的。但是,您不能在不同的分区之间共享它,在不同的节点之间共享就更少。