我正在尝试实现mongoDB spark流通信我的目标是将spark流连接到mongoDB端口,这样当mongoDb在集合中插入任何数据时,我想在spark streaming running console上显示该数据。
我使用了以下代码
val kafkaParams = Map("metadata.broker.list" -> "localhost:27017")
val topics = Set("sometopic", "anothertopic")
val sparkConf = new SparkConf().setAppName("ReadMongo").setMaster("local[2]")
val ssc = new StreamingContext(sparkConf, Seconds(2))
val messages = KafkaUtils.createDirectStream[String, String, StringDecoder, StringDecoder](
ssc, kafkaParams, topics)
val lines = messages.map(_._2)
val words = lines.flatMap(_.split(" "))
val wordCounts = words.map(x => (x, 1L)).reduceByKey(_ + _)
wordCounts.print()
ssc.start()
ssc.awaitTermination()
并将nc
作为nc -lk localhost 27017
启动,但它显示错误为
nc:地址已在使用
我应该如何在特定集合中显示mongo插入的数据,或者我应该如何在spark流中读取mongo插入的数据以便进一步创建实时应用程序?
主要的事情是,当数据插入mongo集合然后火花流式显示立即插入数据