我需要从RDD [HashMap]获取全局HashMap。例如,RDD是RDD [HashMap [Key,value]]。我想从中获取全局HashMap,以便可以使用此HashMap丰富其他RDD中存在的消息。
任何人都可以帮我怎么做。
谢谢
答案 0 :(得分:0)
因此,如注释中所述,您将需要合并功能。假设简单的哈希映射合并对您有用,例如键/值是唯一的,那么您可以使用rdd.reduce(_++_)
之类的简单方法将其合并到本地映射中。然后,您将需要广播它,以便将其有效地发送给每个执行者一次。一旦将其放入广播变量中,就可以在其他RDD的RDD操作中使用它,例如您所说的丰富消息。
val brodcast = sparkContext.broadcast( rdd.reduce(_++_) )
这可以通过使用broadcast.value