首页 > 解决方案 > 如何访问可迭代元组(Scala)中的元素

问题描述

我正在使用Scala创建一个应用程序,但我很难理解一些事情。

我的第一个问题是关于Iterable tuples

Iterable tuplesNormal tuples有什么区别?何时以及如何使用它们?

其次,关于我的申请更具体:

我有一个具有这种形式的 RDD:

(Double, Double), Iterable[(String, String)]

一个元组是第二个包含一些

现在假设我想在我的 RDD 上执行一个 .filter() 方法,使用第二个元组中的第一个元素。为此,我编写了如下所示的代码:

val filteredRDD = oldRDD.filter{ case ((key,value)) => value.filter(x => x._1 == "some_string") } 

当我运行这行代码时,我收到此错误:

错误:类型不匹配;发现:Iterable[(String, String)] required: Boolean

而当我尝试在第一个元组上使用过滤器时,如下所示:

val filteredRDD = oldRDD.filter{ case ((key,value)) => key._1 == 5.4 }  

一切正常!

那么基于第二个元组第一个元素Iterable使用filter() 方法的正确方法是什么?

非常感谢你,如果这听起来太愚蠢,请原谅我。我是这种编码语言的新手。

标签: scalafiltertuplesrdd

解决方案


推荐阅读