Apache spark 在Spark中迭代CompactBuffer

Apache spark 在Spark中迭代CompactBuffer,apache-spark,Apache Spark,我有一个PairedRDD,其中的值根据键进行分组,我从中获取一个特定键: pairsgrouped.lookup("token") 输出: res6: Seq[Iterable[String]] = ArrayBuffer(CompactBuffer(EC-17A5206955089011B, EC-17A5206955089011A)) 我想迭代这些值并进一步过滤结果。但我无法重复它 我尝试了以下方法: pairsgrouped.lookup("token").foreach(print

我有一个PairedRDD,其中的值根据键进行分组,我从中获取一个特定键:

pairsgrouped.lookup("token")
输出:

res6: Seq[Iterable[String]] = ArrayBuffer(CompactBuffer(EC-17A5206955089011B, EC-17A5206955089011A))
我想迭代这些值并进一步过滤结果。但我无法重复它

我尝试了以下方法:

pairsgrouped.lookup("token").foreach(println)
但这给了我这样的信息:

CompactBuffer(EC-17A5206955089011B, EC-17A5206955089011A)

我想迭代这些值并使用这些值过滤结果

分组数据的值是可编辑的,而不是值列表。必须先收集值,然后才能打印它们。要使用key=“token”仅获取组的值,需要进行初始筛选

val result = groupedData.filter{case(key, _) => key == "token"}
                        .values
                        .flatMap(i => i.toList)
                        .collect()

result foreach println

分组数据的值是一个Iterable,而不是一个值列表。必须先收集值,然后才能打印它们。要使用key=“token”仅获取组的值,需要进行初始筛选

val result = groupedData.filter{case(key, _) => key == "token"}
                        .values
                        .flatMap(i => i.toList)
                        .collect()

result foreach println