在scala中将元组附加到列表时出现问题

时间:2019-07-14 09:35:54

标签: scala apache-spark

我有一个从未发生过的怪异问题。我创建了一个空的元组列表,我需要将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)} //尝试分别打印出每一行的第一个和第三个元素作为键和值

然后它精确地输出我期望的结果,这意味着(键,值)对分配必须在循环内工作。但结果却是循环之外的空列表。

我现在有点困惑。谁能给我一个提示?非常感谢!

输入文件的示例如下

input file

0 个答案:

没有答案