2015-03-31 98 views
-5

line = 123 123 123斯卡拉/星火:地圖中的字減少

地圖是如何工作的?線的作用是什麼?

val tokenized =file.map(line=>(line.split("\t")(1),line.split("\t")(2).toInt)) 

什麼是標記化的樣子?

由於

+0

'filehandle'是什麼意思? – 2015-03-31 21:18:30

+0

我只想了解一下地圖功能是如何在這裏工作的。關鍵和價值是什麼? – Dhruv 2015-03-31 22:37:20

+0

鍵,值? 'map'不是創建一個「map」,它是*映射*到另一個類型。看起來你可能想在進入Spark之前閱讀Scala和函數式編程。 – maasg 2015-04-01 08:08:31

回答

0

下面是一個正規的解釋:

的地圖()方法,當應用於一種類型的東西的集合(在一個文件中的行例如集合)和所提供的功能(例如,從給定字符串中提取第二個和第三個項目)將返回將該函數應用於原始集合中每個項目的結果集合(例如,包含每行的第二個和第三個項目的元組的集合)。

語法

line=>(line.blah()) 

是用於限定的功能的簡寫。輸入參數被聲明爲名稱'line',輸出將是評估表達式的結果。在你的表達式中,結果是行中的第二項作爲字符串,第三項作爲整數(作爲「元組」返回)。

這裏是你可以粘貼到僞造的文件並分割上空格而不是標籤上的線階交互解釋的變化:

val file = List("111 222 333", "444 555 666") 

文件:列表[字符串] =列表(111 222 333 444 555 666)

val tokenized =file.map(line=>(line.split(" ")(1),line.split(" ")(2).toInt)) 

符號化:列表[(字符串,整數)] =名單((222333),(555666))

所以,在這裏,你看到的結果是類型列表[(的字符串,詮釋)]