【发布时间】:2016-05-04 09:30:07
【问题描述】:
这可能是一个非常简单的问题,但我在 Spark Streaming API 文档中没有找到任何直接的方法。
假设我有两个这样的 JavaDStream:
JavaDStream<String> stream1;
JavaDStream<String> stream2;
如果我想将这两个中的一个映射到另一个 JavaDStream 字符串,例如,我只是这样做:
JavaDStream<String> stream1mapping=stream1.map(new Function<String,String>() {
@Override
public <String> call(
<String> s) throws Exception {
//do operations on s
...
return new_string;
}
});
我现在的问题是,我如何才能使用两个 JavaDstream 而不是一个,作为映射的输入,对两者执行操作,如比较值等,并返回单个 JavaDstream 作为结果?
比如这样的:
JavaDStream<String> bothstreamsmapping=(stream1 and stream2).map(new Function<String,String>() {
@Override
public <String> call(
<String> s1, s2) throws Exception {
//do operations on s1 and s2
...
return s3 //a single string as a result of operating with s1 and s2;
}
});
非常感谢。
【问题讨论】:
-
您通常会为此使用
join,但您的流需要具有 (k,v) 格式。在您的用例中,您如何知道哪个s1值与s2值对应?
标签: apache-spark spark-streaming