我来自 java 背景和新的火花 . 大多数时候我逐行调试并检查通过每行代码发生的数据操作 .
最近我使用 Intellij IDE 开始使用scala开发 spark streaming app 并且遇到调试问题 .
在下面提供的示例spark WordCount代码中,我可以在初始应用程序启动期间点击断点,但是当我逐渐开始获得 Kafka messages 时,我看不到 break-point 正在为每条消息执行数据操作 .
I could not see runtime data values coming in for "lines" and "words" for every kafka message
不确定,如果这是调试您的spark应用程序和处理复杂数据操作的正确方法 . 请告知使用经典的brakpoint方法是否是调试spark代码的正确方法?
val messages = KafkaUtils.createDirectStream[String, String](
ssc, LocationStrategies.PreferConsistent,
ConsumerStrategies.Subscribe[String, String]
(topicsSet, kafkaParams))
// Get the lines, split them into words, count the words and print
val lines = messages.map(_.value)
val words = lines.flatMap(_.split(" "))
words.print()
ssc.start()
ssc.awaitTermination()