假设我有一个自定义星火分区程序,它需要一个固定的、非常大的集合,在这个示例中传递给它的构造函数。getPartition方法使用此集合返回分区号。
我正在考虑将集合包装在一个Broadcast变量中,并将Broadcast传递给我的自定义分区构造函数。Broadcast能否在传递给RDD方法(如map和filter )的典型函数之外使用?在这种情况下,它的行为有很好的定义吗?是否保证在工作节点JVM之间有效地传输和共享变量?
它是否有任何意义,或者它没有任何改善相比,只是让火花捕获收集的标准方式?
发布于 2018-05-28 08:35:54
我还亲自验证了这种可能性,Broadcast机制也在传递给map、filter和其他RDD方法的函数之外工作。从日志中可以清楚地看到,广播机制正常工作,在本例中,Partitioner的行为与预期一致。
然而,我认为这是一个过火(对我的情况),不会有帮助,除非广播对象被重复使用在多个地方。
https://stackoverflow.com/questions/50533588
复制相似问题