我试图调试一个非常简单的 Spark scala 字数统计程序。由于 spark 是“懒惰的”,所以我认为我需要将断点放在“action”语句上,然后运行该行代码,然后我就可以在该语句之前检查那些 RDD 变量并查看它们的数据。所以我在第 14 行设置了一个断点,当调试到达那里时,我点击 step over 运行第 14 行。但是这样做之后,我无法在调试会话变量视图中看到/找到变量 text1、text2 的任何数据。(但是不过,我可以在调试视图中看到“all”变量中的数据)。我这样做对吗?为什么我看不到 text1/text2 变量中的数据?
假设我的 wordCount.txt 是这样的:
这是一个带有单词 aa aa bb cc cc 的文本文件
我希望(aa,2),(bb,1),(cc,2)在 text2 变量视图中的某个地方看到等。但我在那里找不到类似的东西。请参阅代码下方的屏幕截图。
我正在使用 Eclipse Neon 和 Spark2.1,它是一个 Eclipse 本地调试会话。您的帮助将不胜感激,因为经过广泛搜索后我无法获得任何信息。这是我的代码:
package Big_Data.Spark_App
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
object WordCount {
def main(args: Array[String]){
val conf=new SparkConf().setAppName("WordCountApp").setMaster("local")
val sc = new SparkContext(conf)
val text = sc.textFile("/home/cloudera/Downloads/wordCount.txt")
val text1 = text.flatMap(rec=>rec.split(" ")).map(rec=>(rec,1))
val text2 = text1.reduceByKey( (v1,v2)=>v1+v2).cache
val all = text2.collect() //line …Run Code Online (Sandbox Code Playgroud)