Spark學習(6)——scala陣列操作
Array
在scala中,Array代表的含義與Java類似,也是長度不可變的陣列,此外
由於Java和scala都是執行在JVM中,雙方可以互相呼叫,因此scala的底層
實際上是Java陣列,例如字串的陣列在底層實際上就是Java的 String [] 陣列
整數陣列在底層實際上是Java的int []
陣列初始化後,長度就固定下來了,而且元素全部根據其型別初始化
可以直接使用Array()建立陣列,元素型別自動推斷
獲取陣列內的值
當陣列內的元素型別不一致時,scala自動推斷陣列型別為Any
ArrayBuffer
在scala中,如需要像Java
ArrayBuffer類不能直接使用,使用之前需要先匯入ArrayBuffer類
使用ArrayBuffer的方式可以建立一個空的ArrayBuffer
使用+=操作符,可以新增一個元素或者多個元素,這個方法在Spark原始碼中大量使用
使用++=操作符可以新增其他集合中的所有元素
執行結果:
使用trimEnd,可以從尾部截斷指定個數的元素,b.trimEnd(5),
執行結果:
使用b.insert(3,5) 在指定位置插入元素
執行結果:
Array與ArrayBuffer
執行結果:
遍歷Array和ArrayBuffer
用for迴圈和until遍歷Array和Arraybuffer
Until是RichInt提供的函式
跳躍遍歷Array和Arraybuffer
從尾部遍歷Array和Arraybuffer
使用增強for迴圈遍歷Array和ArrayBuffer
陣列常見操作
陣列元素求和
獲取陣列最大值
對陣列進行排序
獲取陣列中所有元素內容
陣列轉換
對Array進行轉換,獲取的還是Array,對一個數組求平方,用yield
對ArrayBuffer進行轉換,獲取的還是
結合if守衛僅轉換需要的元素
使用函數語言程式設計轉換陣列,filter過濾出這個陣列中除2等於0的,然後map成另一個數組,將過濾出的數乘以2
演算法案例:移出第一個負數之後所有的負數
構建陣列,每發現第一個負數之後的負數就移出掉
Val a =ArrayBuffer[Int]()
a += (1,2,3,4,5,-1.-3.-5,-7)
執行結果:
演算法案例:移出第一個負數之後所有的負數
遍歷Array和ArrayBuffer
遍歷Array和ArrayBuffer
相關推薦
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的過程)。 沒有引數且只有一條語句的方法可以省略引數列表定界()和方法體定界{}。