line = 123 123 123
地图如何运作?行的作用是什么?
val tokenized =file.map(line=>(line.split("\t")(1),line.split("\t")(2).toInt))
什么会被标记化的样子?
由于
答案 0 :(得分:0)
这是一个非正式的解释:
map()方法,当应用于一种类型的事物的集合(例如文件中的行集合)并提供函数(例如从给定字符串中提取第二和第三项)时将返回一个集合将该函数应用于原始集合中的每个项目的结果(例如,包含每行中第二个和第三个项目的元组集合)。
语法
line=>(line.blah())
是定义函数的简写。输入参数声明为名称'line',输出将是计算表达式的结果。在你的表达式中,result是行中的第二个项目作为字符串,第三个项目作为整数(作为'元组'一起返回)。
这是一个可以粘贴到scala交互式解释器中的变体,该解释器伪造文件并在空格而不是制表符上拆分行:
val file = List("111 222 333", "444 555 666")
file:List [String] = List(111 222 333,444 555 666)
val tokenized =file.map(line=>(line.split(" ")(1),line.split(" ")(2).toInt))
tokenized:List [(String,Int)] = List((222,333),(555,666))
所以,在这里你看到的结果是List [(String,Int)]
类型