1. 程式人生 > >Spark學習(6)——scala陣列操作

Spark學習(6)——scala陣列操作

Array

scala中,Array代表的含義與Java類似,也是長度不可變的陣列,此外

由於Javascala都是執行在JVM中,雙方可以互相呼叫,因此scala的底層

實際上是Java陣列,例如字串的陣列在底層實際上就是JavaString [] 陣列

整數陣列在底層實際上是Javaint []

陣列初始化後,長度就固定下來了,而且元素全部根據其型別初始化

可以直接使用Array()建立陣列,元素型別自動推斷

獲取陣列內的值

當陣列內的元素型別不一致時,scala自動推斷陣列型別為Any

ArrayBuffer

scala中,如需要像Java

ArrayList這種長度可變的集合類,則可以使用ArrayBuffer

ArrayBuffer類不能直接使用,使用之前需要先匯入ArrayBuffer

使用ArrayBuffer的方式可以建立一個空的ArrayBuffer

使用+=操作符,可以新增一個元素或者多個元素,這個方法在Spark原始碼中大量使用

使用++=操作符可以新增其他集合中的所有元素

執行結果:

使用trimEnd,可以從尾部截斷指定個數的元素,b.trimEnd(5),

執行結果:

使用b.insert(3,5) 在指定位置插入元素

執行結果:

ArrayArrayBuffer

互相轉換

執行結果:

遍歷Array和ArrayBuffer

for迴圈和until遍歷ArrayArraybuffer

UntilRichInt提供的函式

跳躍遍歷ArrayArraybuffer

從尾部遍歷ArrayArraybuffer

使用增強for迴圈遍歷ArrayArrayBuffer

陣列常見操作

陣列元素求和

獲取陣列最大值

對陣列進行排序

獲取陣列中所有元素內容

陣列轉換

Array進行轉換,獲取的還是Array,對一個數組求平方,用yield

ArrayBuffer進行轉換,獲取的還是

ArrayBuffer

結合if守衛僅轉換需要的元素

使用函數語言程式設計轉換陣列,filter過濾出這個陣列中除2等於0的,然後map成另一個數組,將過濾出的數乘以2

演算法案例:移出第一個負數之後所有的負數

構建陣列,每發現第一個負數之後的負數就移出掉

Val a =ArrayBuffer[Int]()

a += (1,2,3,4,5,-1.-3.-5,-7)

執行結果:

演算法案例:移出第一個負數之後所有的負數

遍歷ArrayArrayBuffer

遍歷ArrayArrayBuffer

相關推薦

Spark學習(6)——scala陣列操作

Array 在scala中,Array代表的含義與Java類似,也是長度不可變的陣列,此外 由於Java和scala都是執行在JVM中,雙方可以互相呼叫,因此scala的底層 實際上是Java陣列,例如字串的陣列在底層實際上就是Java的 String [] 陣列 整

Spark學習Scala的基礎知識

Scala的變數宣告 在Scala建立變數的時候,必須使用val或者var val,變數值不可修改,一旦分配不能重新指向別的值 var,分配後,可重新指向型別相同的值 舉例 val lines = sc.textFile("helloSpark.txt") lines = sc.textFile("he

scala陣列操作之Array、ArrayBuffer以及遍歷陣列

Array     在Scala中,Array代表的含義與Java中類似,也是長度不可改變的陣列。此外,由於Scala與Java都是執行在JVM中,雙方可以互相呼叫,因此Scala陣列的底層實際上是Java陣列。例如字串陣列在底層就是Java的String[],整數陣

Scala陣列操作

陣列基本操作 (1) val s=Array("Hello","World") s(0)="Goodbye" for(elem <- s)println(elem) 在Scala Worksheet裡面的執行結果: s: Array[Str

Spark學習(11)——scala面向物件程式設計(trait)

trait基礎知識-將trait作為介面使用 Scala中的trait是一種特殊的概念,首先我們可以將trait作為介面來使用,此時的trait就與Java中的介面非常類似,在Trait中可以定義抽象方法,就與抽象類中的抽象方法一樣,只要不給出方法的具體實現即可,類可以使用

Scala實戰高手****第6課 :零基礎實戰Scala集合操作Spark源碼解析

應用程序 元素 如果 掌握 說明 例如 log 方法 線程 本課內容1.Spark中Scala集合操作鑒賞2.Scala集合操作實戰 ----------------------------------------------------------------------

Spark機器學習(6):決策樹算法

projects 信息 txt .cn import n) .com util seq 1. 決策樹基本知識 決策樹就是通過一系列規則對數據進行分類的一種算法,可以分為分類樹和回歸樹兩類,分類樹處理離散變量的,回歸樹是處理連續變量。 樣本一般都有很多個特征,有的特征對分

Spark學習筆記3:鍵值對操作

對象 常用 ava java 參數 通過 頁面 ascend 處理過程 鍵值對RDD通常用來進行聚合計算,Spark為包含鍵值對類型的RDD提供了一些專有的操作。這些RDD被稱為pair RDD。pair RDD提供了並行操作各個鍵或跨節點重新進行數據分組的操作接口。 Sp

python基礎學習6-mongodb、sys、接口開發、操作excel

錯誤 tool 類型 tar img 定位 man methods 分享圖片 1 mysql補充 cur = conn.cursor(cursor=pymysql.cursors.DictCursor) #直接獲取的數據轉換為字典格式的 cur.descr

python基礎學習6----字符串操作

取字符串 isspace 默認 如果 class form 標識 三個參數 超過 一.重復輸出字符串 print(‘hello‘*20)#輸出20個hello 二.通過索引獲取字符串中字符 print(‘helloworld‘[2:])#輸出lloworld 三

Spark學習筆記(四) Ubuntu安裝Scala

1. 下載並解壓Scala 1.1 下載Scala2.11.8 下載地址: https://www.scala-lang.org/download/2.11.8.html 選擇Unix版本的下載 1.2 解壓Scala包 $ sudo tar xvf scala-2.11.

caffe原始碼深入學習6:超級詳細的im2col繪圖解析,分析caffe卷積操作的底層實現

在先前的兩篇部落格中,筆者詳細解析了caffe卷積層的定義與實現,可是在conv_layer.cpp與base_conv_layer.cpp中,卷積操作的實現仍然被隱藏,通過im2col_cpu函式和caffe_cpu_gemm函式(後者實現矩陣乘法)實現,在此篇部落格中,筆者旨在向大家展示,caf

二、spark SQL互動scala操作示例

一、安裝spark spark SQL是spark的一個功能模組,所以我們事先要安裝配置spark,參考: https://www.cnblogs.com/lay2017/p/10006935.html 二、資料準備 演示操作將從一個類似json檔案裡面讀取資料作為資料來源,並初始化為dat

Python + OpenCV 學習筆記(三)>>> Numpy 陣列操作

將影象畫素迭代取反: import cv2 as cv import numpy as np def access_pixels(image): print(image.shape) height = image.shape[0]

Spark學習(陸)- Spark操作外部資料來源

文章目錄 產生背景 概念 目標 操作Parquet檔案資料 操作Hive表資料 操作MySQL表資料 操作MySQL的資料方法一: 操作MySQL的資料方法二: 操作MySQL

Spark 學習6

SparkStream 邏輯 當ssc啟動之後,driver會執行一個長時間執行的Task 作為Reveiver的executors,接受傳來的資料收到資料,並將其分成塊儲存在記憶體中 這寫塊也會被賦值給另一個Executors,以免資料丟失 每個

js陣列操作學習筆記

shift:刪除原陣列第一項,並返回刪除元素的值;如果陣列為空則返回undefined var a = [1,2,3,4,5]; var b = a.shift(); //a:[2,3,4,5] b:1unshift:將引數新增到原陣列開頭,並返回陣列的長度 va

Spark學習筆記(一)----spark運算元操作

1.前言   最近在幫公司瞭解大資料方面的技術,涉及到spark的相關內容,所以想寫個筆記記錄一下。目前用到的時spark2.1.0的版本,僅供學習參考。 2.正文   2.1spark官網運算元的分類   spark官網上面有對於運算元的描述,但是spark對於運算元的分類粒度較粗,大致為transform

Spark學習筆記(6)—— 網站訪問次數統計

1 資料檔案 20160321101954 http://java.itcast.cn/java/course/javaeeadvanced.shtml 20160321101954 http://ja

[筆記遷移][Spark開發語言][Scala][6]面向物件

一、 類 方法與函式的定義一樣,需要使用"=",對於“不需要返回”的方法,可以直接省略"="(隱式返回Unit的過程)。 沒有引數且只有一條語句的方法可以省略引數列表定界()和方法體定界{}。