如何在火花流应用程序中初始化DStream的状态

时间:2016-03-10 06:38:22

标签: apache-spark spark-streaming

我有一个Spark-streaming应用程序,基本上跟踪字符串 - >字符串字典。

所以我有更新消息,例如:

“A” - >”中B”

我需要更新字典。

这似乎是updateStateByKey方法的一个简单用例。

然而,我的问题是,当应用程序启动时,我需要使用来自hive表的数据“初始化”字典,该表具有字典的所有历史键/值。

我能想到的唯一方法就是:

val rdd =… //get data from hive
def process(input: DStream[(String, String)]) = {
    input.join(rdd).updateStateByKey(update)
}

因此,连接操作将在每个传入缓冲区完成,实际上我只需要在初始化时使用它。

知道如何实现这个目标吗?

由于

1 个答案:

答案 0 :(得分:2)

span有一个overload accepting an initialRDD,似乎就是您所需要的:

my-attr3