HashMap作为Spark Streaming中的广播变量?

tsa*_*512 6 java apache-spark spark-streaming

我有一些数据需要归类为火花流.分类键值在HashMap中的程序开头加载.因此,需要将每个输入数据包与这些密钥进行比较并相应地进行标记.

我意识到spark有一些变量叫做广播变量和准确器来分配对象.教程中的示例使用简单的变量等.

如何使用HashMap在所有spark worker上共享我的HashMap.或者,有更好的方法吗?

我正在用Java编写我的spark流应用程序.

aba*_*rek 4

在 Spark 中,您可以以相同的方式广播任何可序列化对象。这是最好的方法,因为您只需将数据传送给工作人员一次,然后您就可以在任何任务中使用它。

斯卡拉:

val br = ssc.sparkContext.broadcast(Map(1 -> 2))
Run Code Online (Sandbox Code Playgroud)

爪哇:

Broadcast<HashMap<String, String>> br = ssc.sparkContext().broadcast(new HashMap<>());
Run Code Online (Sandbox Code Playgroud)