我正在尝试理解此位置的 scala 代码。 (我是java背景的)。
我在下面的部分中感到完全迷失了
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/