繁体   English   中英

在 Scala/Spark 中获取键/值对的键

[英]Getting the key of a key/value pair in Scala/Spark

我在 Scala/Spark 中使用箭头运算符创建了一个键值对:

val picardsShip = "Picard" -> "Enterprise-D"

我使用println(picardsShip._2)提取了该值,并按预期返回了Enterprise-D值。 但是,我想在这种情况下提取密钥以获取Picard 当我输入picardsShip. 在我使用的 IntelliJ IDEA 编辑器中,我没有看到任何暗示明显的属性或方法来获取密钥的内容。 有任何想法吗? 谢谢你。

这里要小心,您还没有创建键/值对。 你已经创建了一个元组。 当您使用 REPL 时,您可以看到发生了什么:

scala> val picardsShip = "Picard" -> "Enterprise-D"
picardsShip: (String, String) = (Picard,Enterprise-D)

要访问第一个值,请使用@Krzysztof Atłasik 建议并使用._1

scala> picardsShip._1
res1: String = Picard

是的,您可以使用->运算符创建键/值对,但是如果您希望它像拥有键/值对一样对其进行操作 - 您必须通过将其包装在映射中来更加具体。 然后你不再有 1 个键/值对,但理论上没有到很多键值对,这意味着你基本上有一种Seq ,这是 Scala 真正围绕它构建的。 Map使您可以访问一个 API,该 API 基本上说“好吧,这里有一系列可以被视为键值对的项目”,并允许您按照您期望的键值对查看的方式对其进行操作:

scala> val shipMap: Map[String, String] = Map(("Picard" -> "Enterprise-D"))
shipMap: Map[String,String] = Map(Picard -> Enterprise-D)

scala> shipMap("Picard")
res2: String = Enterprise-D

scala> shipMap.keys.head
res3: String = Picard

scala> shipMap.foreach( kv => println(kv._1))
Picard

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM