scala - 如何访问可迭代元组(Scala)中的元素
问题描述
我正在使用Scala创建一个应用程序,但我很难理解一些事情。
我的第一个问题是关于Iterable tuples:
Iterable tuples和Normal tuples有什么区别?何时以及如何使用它们?
其次,关于我的申请更具体:
我有一个具有这种形式的 RDD:
(Double, Double), Iterable[(String, String)]
第一个元组是键,第二个包含一些值。
现在假设我想在我的 RDD 上执行一个 .filter() 方法,使用第二个元组中的第一个元素。为此,我编写了如下所示的代码:
val filteredRDD = oldRDD.filter{ case ((key,value)) => value.filter(x => x._1 == "some_string") }
- key : 指的是第一个元组: (Double, Double)
- value : 指的是第二个元组:Iterable[(String, String)]
当我运行这行代码时,我收到此错误:
错误:类型不匹配;发现:Iterable[(String, String)] required: Boolean
而当我尝试在第一个元组上使用过滤器时,如下所示:
val filteredRDD = oldRDD.filter{ case ((key,value)) => key._1 == 5.4 }
一切正常!
那么基于第二个元组的第一个元素Iterable使用filter() 方法的正确方法是什么?
非常感谢你,如果这听起来太愚蠢,请原谅我。我是这种编码语言的新手。
解决方案
推荐阅读
- git - VueJS 构建部署历史
- javascript - 如何使用 javascript 在滚动时放大 div 元素?
- javascript - 如何在 JavaScript 库 PrintJS 中选择打印机?
- flutter - 如何更改颤振 showAboutDialog 的形状?
- spring-data-elasticsearch - 如何在 spring-data-elasticsearch 中使用条件和条件查询构造嵌套查询
- java - 面板不显示任何内容
- python - 如何解决类型错误:无法将复数转换为浮点数
- javascript - 事件侦听器函数不返回任何值
- google-chrome-extension - 如何使用脚本更改存储在 chrome.storage 中的 Chrome 扩展程序的配置
- regex - 有没有办法在电子表格中的“GoogleTranslate()”函数中跳过特定单词/符号?