我有一个从未发生过的怪异问题。我创建了一个空的元组列表,我需要将RDD中的某些值作为元组分配给列表enter image description here,以便进行一些计算。这是我的代码: val textFile = sc.textFile(“ input.txt”)
val data = textFile.flatMap(line => line.split(“”))。filter(! .isEmpty())。map( .split(“,”)。map( _.trim))
var res:List [(String,String)] = List()
for(x <-data){var n = 0; for(y <-x){if(n == 0){key = y} else if(n == 3){value = y}; n = n + 1}; res = res:+(((key,value))}
运行代码后没有错误。但是列表res为空。
如果我尝试按如下所示在循环中打印:
for(x <-data){var n = 0; for(y <-x){if(n == 0){key = y} else if(n == 3){value = y}; n = n + 1}; res = res:+(((key,value)); println(res)} //尝试分别打印出每一行的第一个和第三个元素作为键和值
然后它精确地输出我期望的结果,这意味着(键,值)对分配必须在循环内工作。但结果却是循环之外的空列表。
我现在有点困惑。谁能给我一个提示?非常感谢!
输入文件的示例如下