Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有人能给我解释一下这行Scala代码吗?_Scala_Apache Spark - Fatal编程技术网

有人能给我解释一下这行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

Scala语法让我抓狂。下面是Spark驱动程序中的一行Scala。除了最后一刻,我得到了大部分

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)