这可能是一个非常简单的问题,但我没有在Spark Streaming API文档中找到任何直接的方法。
假设我有两个这样的JavaDStream:
JavaDStream<String> stream1;
JavaDStream<String> stream2;
如果我想将这两个中的一个映射到另一个JavaDStream String,例如stream1,我就这样做:
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?< / p>
所以像这样的事情:
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;
}
});
非常感谢你。
答案 0 :(得分:0)
您可以使用stream1.union(stream2)
。工会的文件在这里:
https://spark.apache.org/docs/1.0.0/api/java/org/apache/spark/streaming/dstream/DStream.html#union(org.apache.spark.streaming.dstream.DStream)