1、這裡準備乙個字串list作為輸入資料來源
val lines = list("hello tom hello jerry", "hello jerry", "hello kitty")
2、wordcount
2.1、將每乙個字串按照空格切分
lines.map(_.split(" "))
2.2、將切分後的陣列取掉,直接將每乙個單詞放在外層的list中
lines.map(_.split(" ")).flatten
2.3、前面兩個步驟可以合成乙個步驟完成(2.1+2.2)
lines.flatmap(_.split(" "))
結果: list[string] = list(hello, tom, hello, jerry, hello, jerry, hello, kitty)
2.4、將每乙個單詞和「1」組成元組
.map((_, 1))
結果: list[(string, int)] = list((hello,1), (tom,1), (hello,1), (jerry,1), (hello,1), (jerry,1), (hello,1), (kitty,1))
2.5、分組
.groupby(_._1)
結果:scala.collection.immutable.map[string,list[(string, int)]] = map(tom -> list((tom,1)), kitty -> list((kitty,1)), jerry -> list((jerry,1), (jerry,1)), hello -> list((hello,1), (hello,1), (hello,1), (hello,1)))
2.6、將map中的value中的元組的size
方法一:.map(t => (t._1, t._2.size))
方法二:.mapvalues(_.foldleft(0)(_+_._2))
2.7、排序
.tolist.sortby(_._2).reverse
可以用一步完成:
方法一:lines.flatmap(_.split(" ")).map((_, 1)).groupby(_._1).map(t => (t._1, t._2.size)).tolist.sortby(_._2).reverse
方法二:lines.flatmap(_.split(" ")).map((_, 1)).groupby(_._1).mapvalues(_.foldleft(0)(_+_._2))
eve單機版一鍵端 人人都能架設的單機版傳奇
傳奇已經發展了20年,從2001年盛大 到如今各種復古傳奇,達叔傳奇什麼的簡直不要太多。但我們一直都是扮演玩家的角色,有沒有想過自己也可以架設單機版傳奇。從更高的視角來看待自己玩了多年的傳奇遊戲。從介面來看就知道這是玩單機遊戲倉的端 電腦遊戲手機不能遊戲 它的使用方法非常簡單 1.安裝服務端到d盤 ...
乙份完整的單機版slurm部署
場景使用 一台8卡gpu伺服器,想要多人使用,每次提交任務可以使用一塊卡 也可以使用兩塊,具體需要配置 比如第9個人使用時就要排隊,等前面8個人用完才可以使用gpu做計算,基於這樣的乙個情況,我研究了下slurm,花了兩天時間終於實現了我需要的功能,以下是我所有的部署操作,乙份很完整的單機slurm...
用golang寫乙個proxy
我複雜的網路環境中,proxy是個很有用的工具,我們可以通過proxy 幫我們完成網路流量的 這個proxy得先能接收請求,所以這裡先啟動乙個tcp的監聽,獲取請求 func s server start glog.infof proxy listen in s,waiting for connec...