Scala/Spark:wordreduce中的映射

Scala/Spark:wordreduce中的映射,scala,dictionary,mapreduce,apache-spark,Scala,Dictionary,Mapreduce,Apache Spark,行=123 地图是怎么工作的?线路的作用是什么 val tokenized =file.map(line=>(line.split("\t")(1),line.split("\t")(2).toInt)) 标记化会是什么样子 谢谢这里有一个非正式的解释: map()方法应用于一种类型的集合(例如,文件中的行集合)并提供函数(例如,从给定字符串中提取第二项和第三项)时,将返回将该函数应用于原始集合中每个项的结果集合(例如,包含每行第二项和第三项的元组集合) 语法 line=>(lin

行=123

地图是怎么工作的?线路的作用是什么

val tokenized =file.map(line=>(line.split("\t")(1),line.split("\t")(2).toInt))
标记化会是什么样子


谢谢这里有一个非正式的解释:

map()方法应用于一种类型的集合(例如,文件中的行集合)并提供函数(例如,从给定字符串中提取第二项和第三项)时,将返回将该函数应用于原始集合中每个项的结果集合(例如,包含每行第二项和第三项的元组集合)

语法

line=>(line.blah())
是定义函数的简写形式。输入参数以名称“line”声明,输出将是表达式求值的结果。在表达式中,结果是行上的第二项为字符串,第三项为整数(作为“tuple”一起返回)

下面是一个变体,您可以粘贴到scala交互式解释器中,该解释器伪造文件并在空格而不是制表符上拆分行:

val file = List("111 222 333", "444 555 666")
文件:List[String]=List(11122233344455666)

标记化:List[(String,Int)]=List((222333),(555666))


因此,这里您看到的结果是类型列表[(String,Int)]

您所说的
filehandle
是什么意思?我只想了解map函数在这里是如何工作的。键和值是什么?键,值?
map
没有创建“map”,它正在将一种类型映射到另一种类型。看起来在进入Spark之前,您可能需要阅读Scala和函数式编程。
val tokenized =file.map(line=>(line.split(" ")(1),line.split(" ")(2).toInt))