Apache Spark - 无法理解scala示例

时间:2016-01-27 19:56:09

标签: java arrays scala apache-spark

我正在尝试了解此位置的scala代码。 (我来自java背景)。

https://github.com/apache/spark/blob/master/examples/src/main/scala/org/apache/spark/examples/GroupByTest.scala

我感到完全迷失在下面的部分

val pairs1 = sc.parallelize(0 until numMappers, numMappers).flatMap { p =>
  val ranGen = new Random
  var arr1 = new Array[(Int, Array[Byte])](numKVPairs)
  for (i <- 0 until numKVPairs) {
    val byteArr = new Array[Byte](valSize)
    ranGen.nextBytes(byteArr)
    arr1(i) = (ranGen.nextInt(Int.MaxValue), byteArr)
  }
  arr1
}.cache()

我知道并行化和平面地图的作用。我没有得到arr1如何初始化。它是int类型还是其他东西 - 字节数组?另外,它在循环逻辑中做了什么。

2 个答案:

答案 0 :(得分:1)

var arr1 = new Array[(Int, Array[Byte])](numKVPairs)

只需创建一个大小为numKVPairs且类型为(Int, Array[Byte])的数组(int对和字节数组)

之后,arr1充满了随机数据。

答案 1 :(得分:1)

var arr1 = new Array[(Int, Array[Byte])](numKVPairs)

创建一个类型对的数组(Int,Array [Byte])。这是对的第一个元素是Int类型,第二个元素是Array [Byte]。