有人能给我解释一下这行Scala代码吗?
Scala语法让我抓狂。下面是Spark驱动程序中的一行Scala。除了最后一刻,我得到了大部分有人能给我解释一下这行Scala代码吗?,scala,apache-spark,Scala,Apache Spark,Scala语法让我抓狂。下面是Spark驱动程序中的一行Scala。除了最后一刻,我得到了大部分 val ratings = lines.map(x => x.toString().split("\t")(2)) 漂浮在那里的那两个没有意义。我从智力上理解它是RDD中的第三项,但为什么没有一个点或什么东西将它连接到语句的其余部分呢?因为字符串x被分割成一个数组,这是访问数组元素的语法这是访问数组元素的Scala语法 上面返回一个数组。添加2将返回该数组中的第三个元素。这是对数组调用.ap
val ratings = lines.map(x => x.toString().split("\t")(2))
漂浮在那里的那两个没有意义。我从智力上理解它是RDD中的第三项,但为什么没有一个点或什么东西将它连接到语句的其余部分呢?因为字符串x被分割成一个数组,这是访问数组元素的语法这是访问数组元素的Scala语法 上面返回一个数组。添加2将返回该数组中的第三个元素。这是对数组调用.apply2的语法糖,它在提供的索引处提供元素 例如:
val numbers = Array("beaver", "aardvark", "warthog")
numbers(0) // "beaver"; same as numbers.apply(0)
numbers(1) // "aardvark"
numbers(2) // "warthog"
据我观察
val fruits = Array("Apple", "Banana", "Orange");
fruits.map(x => x.toString().split("\t")(0))
Array[String] = Array(Apple, Banana, Orange)
fruits.map(x => x.toString().split("\t"))
Array[Array[String]] = Array(Array(Apple), Array(Banana), Array(Orange))
fruits.map(x => x.toString())
Array[String] = Array(Apple, Banana, Orange)
括号是Scala函数调用的语法。实际上,它与大多数其他语言没有什么不同。ECMAScript和Python是一样的,我已经用各种语言编写代码15年了。我不知道。split是一个数组,它会有帮助,但更重要的是,我使用过的其他语言都没有Scala那样将事物链接在一起。有时我会在SSIS的C中看到这一点,但我只是觉得这是工具的一个怪癖,而不是C。
val fruits = Array("Apple", "Banana", "Orange");
fruits.map(x => x.toString().split("\t")(0))
Array[String] = Array(Apple, Banana, Orange)
fruits.map(x => x.toString().split("\t"))
Array[Array[String]] = Array(Array(Apple), Array(Banana), Array(Orange))
fruits.map(x => x.toString())
Array[String] = Array(Apple, Banana, Orange)