从RDD获取HashMap

时间:2018-11-13 00:30:12

标签: scala apache-spark

我需要从RDD [HashMap]获取全局HashMap。例如,RDD是RDD [HashMap [Key,value]]。我想从中获取全局HashMap,以便可以使用此HashMap丰富其他RDD中存在的消息。

任何人都可以帮我怎么做。

谢谢

1 个答案:

答案 0 :(得分:0)

因此,如注释中所述,您将需要合并功能。假设简单的哈希映射合并对您有用,例如键/值是唯一的,那么您可以使用rdd.reduce(_++_)之类的简单方法将其合并到本地映射中。然后,您将需要广播它,以便将其有效地发送给每个执行者一次。一旦将其放入广播变量中,就可以在其他RDD的RDD操作中使用它,例如您所说的丰富消息。

val brodcast = sparkContext.broadcast( rdd.reduce(_++_) )

这可以通过使用broadcast.value

来使用