刚刚学习spark streaming,程序每次都是以 --master local[2]的模式跑。发现这样一个问题:当使用命令
bin/spark-submit --class com.xxxxx.sparkStreaming.XxxXxx --master local[2] xxxxxx.jar parameter1 parameter2 parameter3 parameter4
后,程序只能输出DStream的动作,例如我这里的
1 //res_records是一个DStream 2 res_records.print() 3 //recordsMap是中间过程产生的一个Map 4 recordsMap.map(x => (x._1, x._2.toList.sortBy(_._1))).foreach(println)
最终的界面输出只有res_records.print()的结果。如图:
请教各路神仙!
应该如何输出这种中间结果呢?(豆子不多了,望见谅!)
经过测试发现,如果这个输出的方法不放在DStream.print()的后面,比如放在一个计算用的方法里面,这个内容就会被输出了。还请各位指点!
说的不清楚的地方还请指出。
DStreams.print()
该方法是在每个批数据中打印前10条元素。
这个不影响吧,关键是后面的输出没有显示出来啊,所以我不是很懂。。。
@chen-kh:
你可以试试把Log 输出到文件用这个方法