在scala中映射多个数组

在scala中映射多个数组,scala,Scala,我在Scala中有两个数组,它们的数字都相同 val v = myGraph.vertices.collect.map(_._1) 其中: Array[org.apache.spark.graphx.VertexId] = Array(-7023794695707475841, -44591218498176864, 757355101589630892, 21619280952332745) Array[String] = Array(2, 3, 1, 2) String = {id:-

我在Scala中有两个数组,它们的数字都相同

val v = myGraph.vertices.collect.map(_._1)
其中:

Array[org.apache.spark.graphx.VertexId] = Array(-7023794695707475841, -44591218498176864, 757355101589630892, 21619280952332745)
Array[String] = Array(2, 3, 1, 2)
String = {id:-7023794695707475841,group:1},{id:-44591218498176864,group:1},{id:757355101589630892,group:1},{id:21619280952332745,group:1}
还有一个

val w = myGraph.vertices.collect.map(_._2._2)
其中:

Array[org.apache.spark.graphx.VertexId] = Array(-7023794695707475841, -44591218498176864, 757355101589630892, 21619280952332745)
Array[String] = Array(2, 3, 1, 2)
String = {id:-7023794695707475841,group:1},{id:-44591218498176864,group:1},{id:757355101589630892,group:1},{id:21619280952332745,group:1}
我想用

val z =  v.map("{id:" + _ + "," + "group:" + "1" + "}").mkString(",")
其中:

Array[org.apache.spark.graphx.VertexId] = Array(-7023794695707475841, -44591218498176864, 757355101589630892, 21619280952332745)
Array[String] = Array(2, 3, 1, 2)
String = {id:-7023794695707475841,group:1},{id:-44591218498176864,group:1},{id:757355101589630892,group:1},{id:21619280952332745,group:1}
但是现在,我不想硬编码组“1”,而是想映射w数组中的数字,给出:

String = {id:-7023794695707475841,group:2},{id:-44591218498176864,group:3},{id:757355101589630892,group:1},{id:21619280952332745,group:2}

如何做到这一点?

Scala collections中有一个名为的方法,可以按您需要的方式将两个集合配对

val v = Array(-37581, -44864, 757102, 21625)
val w = Array(2, 3, 1, 2)

val z = v.zip(w).map { 
  case (v, w) => "{id:" + v + "," + "group:" + w + "}" 
}.mkString(",")
z
变为:

{id:-37581,group:2},{id:-44864,group:3},{id:757102,group:1},{id:21625,group:2}

Scala集合中有一个名为的方法,它将两个集合按您需要的方式配对

val v = Array(-37581, -44864, 757102, 21625)
val w = Array(2, 3, 1, 2)

val z = v.zip(w).map { 
  case (v, w) => "{id:" + v + "," + "group:" + w + "}" 
}.mkString(",")
z
变为:

{id:-37581,group:2},{id:-44864,group:3},{id:757102,group:1},{id:21625,group:2}