我对Spark非常陌生。对于我的项目,我需要合并来自不同端口上不同流的数据。为了测试我是否进行了练习,目的是打印来自不同端口的流中的数据。在下面您可以看到代码:
object hello {
def main(args: Array[String]) {
val ssc = new StreamingContext(new SparkConf(), Seconds(2))
val lines9 = ssc.socketTextStream("localhost", 9999)
val lines8 = ssc.socketTextStream("localhost", 9998)
lines9.print()
lines8.print()
ssc.start()
ssc.awaitTermination()
}
}
然后,我运行这些代码并启动nc -lk 9999和nc -lk9998。当我在端口9999上放置任何内容时,我看到Spark的输出正常。当我在9998上放任何东西时,看不到任何输出。
您能否解释一下为什么9998上没有输出,我应该如何实现将这两个流合并?
最佳答案
您可以使用这种(Dstream1.union(Dstream2)
)方法来合并您的Dstream。它将返回一个新的Dstream。