Scala和Spark中的"zip"方法是什么?

hot*_*oup 1 scala apache-spark

在Scala,Spark和许多其他"大数据"类型的框架,语言,库中,我看到了名为" zip*"的方法.例如,在Scala中,List类型有一个固有的zipWithIndex方法,您可以这样使用:

val listOfNames : List[String] = getSomehow()
for((name,i) <- listOfNames.zipWithIndex) {
  println(s"Names #${i+1}: ${name}")
}
Run Code Online (Sandbox Code Playgroud)

同样星火有RDD类似的方法zip,zipPartitions等等.

但方法名称"zip"完全让我失望.这是计算或离散数学的概念吗?!所有这些方法的名称中都有" zip " 的动机是什么?

Jus*_*ony 13

它们被命名为zip,因为您正在压缩两个数据集,如拉链.

要使其可视化,请采用两个数据集:

x = [1,2,3,4,5,6]
y = [a,b,c,d,e,f]
Run Code Online (Sandbox Code Playgroud)

然后将它们压缩在一起得到

   1 a
   2 b
   3 c
  4   d
 5     e
6       f
Run Code Online (Sandbox Code Playgroud)

当你向下移动数据集时,我把额外的间距给了拉链幻觉:)

  • 哦,很好,所以它基本上形成一个2元组,其中两个元素都是与其输出大小相同的数组,这是有道理的!非常感谢!!! (2认同)