java - Apache Spark - 无法理解 scala 示例

标签 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()

我知道并行化和平面 map 的作用。我不明白 arr1 是如何初始化的。它是 int 类型还是其他类型——字节数组?另外,它在 for 循环逻辑中做了什么。

最佳答案

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

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

之后,arr1 被随机数据填充。

关于java - Apache Spark - 无法理解 scala 示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35046828/

相关文章:

c++ - 在编译时创建 N 个对象的最佳方式

javascript - 如何循环对象数组来求解简单的求和

java - 如何在 Scala 的单元测试中利用不同类的变量?

java - IntelliJ IDEA 17 - ASM 字节码大纲不起作用

java - 将 RestTemplate 保留在内存中比为每个请求创建新的 RestTemplate 更好吗?

java - 如何从引用的java项目访问静态资源(WEB-INF)文件夹中的文件?

Java 循环遍历整数数组

ios - 没有更多上下文,表达式类型不明确。 xcode 快速

Scalatest 异步测试套件与最终和WhenReady (org.scalatest.concurrent)

scala - 为什么定义默认参数值时需要输入?