首页 > 解决方案 > Scala 和 Spark 中的“zip”方法是什么?

问题描述

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

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

同样,Spark 也有类似,等的RDD方法。zipzipPartitions

但是方法名称“zip”完全让我失望。这是计算还是离散数学中的概念?!所有这些名称中带有“ zip ”的方法的动机是什么?

标签: scalaapache-spark

解决方案


它们被命名为 zip,因为您正在像拉链一样压缩两个数据集。

为了将其可视化,请使用两个数据集:

x = [1,2,3,4,5,6]
y = [a,b,c,d,e,f]

然后把它们拉在一起得到

   1 a
   2 b
   3 c
  4   d
 5     e
6       f

当您向下移动数据集时,我放置了额外的间距只会产生拉链错觉:)


推荐阅读