0
我开始学习Scala和我经历了这段代码从https://github.com/sryza/aas/blob/master/ch05-kmeans/src/main/scala/com/cloudera/datascience/kmeans/RunKMeans.scala什么是Scala中的“(line:String)=> {}”结构?它是如何工作的?
def buildCategoricalAndLabelFunction(rawData: RDD[String]): (String => (String,Vector)) = {
...
(line: String) => {
val buffer = line.split(',').toBuffer
...
val label = buffer.remove(buffer.length - 1)
val vector = buffer.map(_.toDouble)
...
(label, Vectors.dense(vector.toArray))
}
}
运行什么我不明白是什么(行:字符串)=> {...}做。线路在哪里初始化?在我看来,程序正在接受来自rawData参数的输入,但我不明白这是如何发生的。
如果有人能够解释这个Scala结构被称为 - 甚至更好,它是如何工作的 - 我真的很感激它!
有趣的是什么可能是定义一个函数内部的匿名函数的动机,如图所示在我最初的例子?该函数是否简单地返回匿名函数而不是值? – Shuklaswag
是的。查看你的方法'buildCategoricalAndLabelFunction'的名字。 –
不是“而不是”一个值,函数_is_是一个值。 –