有人可以向我解释这行Scala代码吗?

Bob*_*eld -1 scala apache-spark

Scala语法一直让我疯狂.下面是Spark驱动程序中的一行Scala.除了最后,我得到了大部分内容.

val ratings = lines.map(x => x.toString().split("\t")(2))
Run Code Online (Sandbox Code Playgroud)

(2)只是漂浮在那里没有意义.我从理智上理解它是RDD中的第三个项目,但是为什么没有一个点或某些东西将它连接到声明的其余部分?

Jef*_*ung 5

这是Scala用于访问Array元素的语法.

x.toString().split("\t")
Run Code Online (Sandbox Code Playgroud)

以上返回Array.添加(2)返回该数组中的第三个元素.这是用于调用.apply(2)数组的语法糖,它为您提供所提供索引的元素.

一个例子:

val numbers = Array("beaver", "aardvark", "warthog")
numbers(0) // "beaver"; same as numbers.apply(0)
numbers(1) // "aardvark"
numbers(2) // "warthog"
Run Code Online (Sandbox Code Playgroud)