我使用套接字流作为输入流,然后执行map并reduce。
SparkConf conf = new SparkConf().setMaster("local[2]").setAppName("NetworkWordCount");
JavaStreamingContext jssc = new JavaStreamingContext(conf, Durations.seconds(2));
JavaReceiverInputDStream<String> logMessage = jssc.socketTextStream("localhost", 8999);
JavaDStream<Log> logs = logMessage.flatMap(); //function is omitted
JavaPairDStream<String, Integer> pairByTime0 = logs.mapToPair();//function is omitted
JavaPairDStream<String, Integer> r = pairByTime0 .reduceByKey();//function is omitted
ds.print();
jssc.start();
jssc.awaitTermination();
我试图跟踪flagMap并确保输入正确。 我知道每2s火花都可以完成工作并打印结果,但为什么打印不起作用。我看不到任何结果。 Here is the log image
更新:实际上上面的代码有效,问题出在我的客户端程序中,它将流发送到spark。
答案 0 :(得分:-1)
Spark操作很懒散。您必须调用操作才能获得结果。这就是省略mapToPair,flatMap和reduceByKey的原因。