大資料學習之Scala陣列和集合學習38

2022-03-18 02:48:27 字數 3366 閱讀 3002

1 陣列定義:

陣列定義1:

var arr = new array[string](3)

string:儲存的元素型別

3:儲存

3個元素

新增元素: arr(1) = "dawn"

陣列定義2:

val arr1 = array[int](1,2,3,4,5,6)

改變內容:arr1(1) = 20

新增元素:arr1 += 18長度不可以改變

2長度可變的陣列

建立長度可變陣列:

val ab = scala.collection.mutable.arraybuffer(2,3,4)

長度可變:

3陣列方法

-》

map(

對映)對映: 1 2 3 4 5

對映關係:f(x) = x*2

對應對映關係:2 4 6 8 10 

扁平化操作

這裡a1經過

map之後

res23

就是乙個陣列中有2個陣列元素的陣列

然後再進行扁平操作。將這2個陣列合併成乙個。並將其打散!!

相當於先map操作再

flatten

-》

foreach

遍歷陣列中的元素

-》

groupby

分組

通過上面的一些陣列方法可以進行的scala單詞計數

,將上一步groupby的結果

map集合的每乙個元素進行遍歷處理,

haha -> array(haha), dawn -> array(dawn, dawn), hello -> array(hello, hello), best -> array(best)

處理每乙個元素,

key值保持不變,

value

進行計數,輸出結果為

排序這裡對上面結果進行排序。由於單詞計數之後結果是map集合,

map集合不能進行排序,需要先轉化成

list

才可以排序,再使用

sortby

預設是正序

逆序加乙個負號

1 可變集合

scala集合有兩種型別:

可變mutable

不可變immutable

val b = list(2,4,6)

不可變集合:內容不可變(陣列內容可變改)

長度不可變(預設)

可變集合:

注意:需要導包

import scala.collection.mutable._

val buff = arraybuffer(2,3,4)

內容可變:buff(1) = 300

長度可變:buff += 200

2不可變集合

可以出了預設的方法以外,還可以呼叫不可用集合。

import scala.collection.immutable._

3 集合的基本操作

在scala中列表為空表示(

nil表示空列表)

head:取頭元素

tail:取尾元素(除了頭全是尾)

5::a  a列表的頭加入乙個元素

1111::12::13::nil 空列表前加入三個元素

11,12,13

+ 字串的拼接

++ 兩個集合相加

++: 合併集合

.+: 頭部追加元素

:+ 尾部追加元素

::: 兩個集合相加

Scala學習(4) 集合之Array

不可變陣列 array 將指定的值建立為陣列 val arr array int array 1,2,3,4,5,6,7 獲取陣列中的元素,使用下標獲取 println s first element 獲取陣列長度 println s length size 對陣列中指定下標的元素進行修改 arr ...

大資料學習 7Scala系列之集合操作函式

4.6 集合的重要函式 4.6.1sum max min count 在序列中查詢最大或最小值是乙個極常見的需求,如下 val numbers seq 11,2,5,1,6,3,9 numbers.max 11 numbers.min 1 更高階的例子,其中包含乙個書的序列 case class b...

機器學習之大資料集

前言 簡介大資料時代已經來臨,它將在眾多領域掀起變革的巨浪。機器學習對於大資料集的處理也變得越來越重要。大資料 集務必會帶來恐怖的計算量,不僅耗費大量資源,而且給資料處理的實時性帶來巨大的挑戰。想要解決這個難題,就需要採取以下措施 選擇更加適合大資料集的演算法 更加好的硬體,採用平行計算等。本文內容...