-7
我是火花和斯卡拉的業餘愛好者,誰能告訴我這是什麼語法? :火花和斯卡拉的語法
val encoded_props = props.map(_.split(" ")).map(t => Map((t(1),t(0).toLong))).reduce((a1,a2)=>a1++a2)
感謝
我是火花和斯卡拉的業餘愛好者,誰能告訴我這是什麼語法? :火花和斯卡拉的語法
val encoded_props = props.map(_.split(" ")).map(t => Map((t(1),t(0).toLong))).reduce((a1,a2)=>a1++a2)
感謝
見,
星火Scala的一些泛函原理像地圖使用,減少等..
那麼,讓我展示它是如何工作的。
假設你有這樣的文件:
123 A
456 B
該文件將被裝載在可變props
當你映射在map(_.split(" "))
在地圖上每一行,你會在分割數據空間caractere。它會在你的RDD創建(字符串,字符串)的這樣一個元組:
(("123", "A"), ("456", "B"))
的其他地圖map(t => Map((t(1),t(0).toLong)))
是說在每個元組的每個元素,你會選擇0元和1元創建一個Map對象。您正在將索引0字符串轉換爲Long。下面是輸出
Map("A" -> 123)
Map("B" -> 456)
地圖,是Scala的集合,可以追加項目與++
所以減少將每個相同的鍵,它會追加數據到地圖的集合。像所有的A都會這樣追加對方:
Map("A" -> 123, "A" -> 669)
我建議你在文檔中檢查這個過程的每個元素。