日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

3000門(mén)徒內(nèi)部訓(xùn)練絕密視頻(泄密版)第1課:大數(shù)據(jù)最火爆語(yǔ)言Scala光速入門(mén)

 看風(fēng)景D人 2019-02-24

scala 可以使用java的庫(kù)
scala 的工廠方法:apply
條件表達(dá)式有返回值
數(shù)組可以用to ,箭頭 <-
最后一行內(nèi)容的值是整個(gè)代碼塊的返回值
def函數(shù) 定義函數(shù),調(diào)用不按順序
函數(shù):def 函數(shù)名,參數(shù)名:類(lèi)型名,可以設(shè)定默認(rèn)值,后可跟=號(hào),如def f1 ( param1:String, param2: Int = 30) = param1 + param2
有默認(rèn)值的參數(shù)調(diào)用時(shí)可以不加參數(shù),另外調(diào)用時(shí)如果指定參數(shù)名的話可以不考慮參數(shù)順序。
參數(shù)數(shù)量可變:def sum(numbers:Int*) *表示變長(zhǎng) 調(diào)用時(shí)不可sum(0 to 100) ,因?yàn)? to 100是range類(lèi)型,而參數(shù)中要求是變量,但是可以用 0 to 100 _* ,表示變成多個(gè)值

過(guò)程:無(wú)返回值的函數(shù),定義函數(shù)返回值為Unit,在參數(shù)列表之后加上:Unit ,或者將函數(shù)定義后的=改變成花括號(hào)

lazy 類(lèi)型:第一次被定義時(shí)計(jì)算

異常

try {
    val content = fromFile("/usr/local/spark/sfijweoijgr/")
}catch{
    case _: FileNotFoundException => println("Ooooops!!! File not found")
} finally {
    println("Byebye world!")
}

集合
數(shù)組val arr = new ArrayInt

ArrayBuffer的insert,remove方法

scala> val arr1 = Array("Scala","Spark")
arr1: Array[String] = Array(Scala, Spark)

scala> val arr1 = Array.apply("Scala","Spark")
arr1: Array[String] = Array(Scala, Spark)

scala> Array
res3: Array.type = scala.Array$@54d18072

scala> arr1(2) = "Hadoop"
java.lang.ArrayIndexOutOfBoundsException: 2
  ... 33 elided

scala> val arrbuf = ArrayBuffer[Int]()
<console>:7: error: not found: value ArrayBuffer
       val arrbuf = ArrayBuffer[Int]()
                    ^

scala> import scala.collection.mutable.A
AVLIterator      AbstractIterable   AbstractSet   ArrayBuilder   ArraySeq     
AVLTree          AbstractMap        AnyRefMap     ArrayLike      ArrayStack   
AbstractBuffer   AbstractSeq        ArrayBuffer   ArrayOps                    

scala> import scala.collection.mutable.Array
ArrayBuffer   ArrayBuilder   ArrayLike   ArrayOps   ArraySeq   ArrayStack

scala> import scala.collection.mutable.ArrayBu
ArrayBuffer   ArrayBuilder

scala> import scala.collection.mutable.ArrayBuffer
import scala.collection.mutable.ArrayBuffer

scala> val arrbuf = ArrayBuffer[Int]()
arrbuf: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer()

scala> arrbuf += 10
res5: arrbuf.type = ArrayBuffer(10)

scala> arrbuf
res6: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(10)

scala> arrbuf(1)
java.lang.IndexOutOfBoundsException: 1
  at scala.collection.mutable.ResizableArray$class.apply(ResizableArray.scala:43)
  at scala.collection.mutable.ArrayBuffer.apply(ArrayBuffer.scala:48)
  ... 33 elided

scala> arrbuf += ( 12,23,35,56)
res8: arrbuf.type = ArrayBuffer(10, 12, 23, 35, 56)

scala> arrbuf
res9: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(10, 12, 23, 35, 56)

scala> arrbuf ++= Array(1,2,3,4)
<console>:1: error: illegal character '\uff08'
       arrbuf ++= Array(1,,2,3,4)
                       ^
<console>:1: error: illegal character '\uff0c'
       arrbuf ++= Array(1,,2,3,4)
                         ^

scala> arrbuf ++= Array(1,2,3,4)
res10: arrbuf.type = ArrayBuffer(10, 12, 23, 35, 56, 1, 2, 3, 4)

scala> arrbuf
res11: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(10, 12, 23, 35, 56, 1, 2, 3, 4)

scala> arrbuf.t
tail        takeWhile   toIndexedSeq   toMap      toString        transpose   
tails       to          toIterable     toSeq      toTraversable   trimEnd     
take        toArray     toIterator     toSet      toVector        trimStart   
takeRight   toBuffer    toList         toStream   transform                   

scala> arrbuf.t
tail        takeWhile   toIndexedSeq   toMap      toString        transpose   
tails       to          toIterable     toSeq      toTraversable   trimEnd     
take        toArray     toIterator     toSet      toVector        trimStart   
takeRight   toBuffer    toList         toStream   transform                   

scala> arrbuf.trim
trimEnd   trimStart

scala> arrbuf.trim
trimEnd   trimStart

scala> arrbuf.trimEnd(3)

scala> arrbuf
res13: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(10, 12, 23, 35, 56, 1)

scala> arrbuf
res14: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(10, 12, 23, 35, 56, 1)

scala> arrbuf.in
indexOf        indexWhere   init    insert      intersect   
indexOfSlice   indices      inits   insertAll               

scala> arrbuf.insert(4,100)

scala> arrbuf
res16: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(10, 12, 23, 35, 100, 56, 1)

scala> arrbuf.insert(6,7,8,9)

scala> arrbuf
res18: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(10, 12, 23, 35, 100, 56, 7, 8, 9, 1)

scala> arrbuf.remove(0)
res19: Int = 10

scala> arrbuf
res20: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(12, 23, 35, 100, 56, 7, 8, 9, 1)

scala> arrbuf.remove(1,2)

scala> arrbuf
res22: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(12, 100, 56, 7, 8, 9, 1)

scala> val arr2 = arrbuf.toArray
arr2: Array[Int] = Array(12, 100, 56, 7, 8, 9, 1)

scala> arr2.toBuffer
res23: scala.collection.mutable.Buffer[Int] = ArrayBuffer(12, 100, 56, 7, 8, 9, 1)

scala> arr2.toString
   def toString(): String

scala> arr2.toBuffer
res24: scala.collection.mutable.Buffer[Int] = ArrayBuffer(12, 100, 56, 7, 8, 9, 1)

scala> for ( elem <- arr2) { elem}

scala> for ( elem <- arr2) {println(elem)}
12
100
56
7
8
9
1

scala> for( i <- 1 until (arr2.length,1)) println(arr2(i))
100
56
7
8
9
1

scala> for( i <- 1 until (arr2.length,2)) println(arr2(i))
100
7
9

scala> for( i <- 0 until (arr2.length,2)) println(arr2(i))
12
56
8
1

scala> for( i <- 0 until (arr2.length,2)) println(arr2(i))
12
56
8
1

scala> arr2
res31: Array[Int] = Array(12, 100, 56, 7, 8, 9, 1)

scala> for(i <- (0 until arr2.length).reverse) println(arr2(i))
1
9
8
7
56
100
12

scala> import scala.util.Sorting._
import scala.util.Sorting._

scala> quickSort(arr2)

scala> arr2
res34: Array[Int] = Array(1, 7, 8, 9, 12, 56, 100)

scala> val arr3 = for(i <- arr2) yield i*i
arr3: Array[Int] = Array(1, 49, 64, 81, 144, 3136, 10000)

scala> val arr4 = for(i <- arr2 if i%3 == 0) yield i*i
arr4: Array[Int] = Array(81, 144)

scala>  arr2.filter(_%3 ==0).map(i => i*i)
res35: Array[Int] = Array(81, 144)

scala>  arr2.filter{_%3 ==0}.map{i => i*i}
res36: Array[Int] = Array(81, 144)

scala>  arr2.filter{_%3 ==0}map{i => i*i}
res3: Array[Int] = Array(144, 81)

yield 把后面的每一個(gè)元素收集起來(lái)并組拼成一個(gè)集合

作業(yè):刪掉數(shù)組中第一個(gè)負(fù)數(shù)后面的所有負(fù)數(shù)

scala> val person = Map("Spark" ->6, "Hadoop" -> 11)
person: scala.collection.immutable.Map[String,Int] = Map(Spark -> 6, Hadoop -> 11)

scala> person("Hadoop")
res4: Int = 11

scala> val person = scala.collection.mutable.Map("Spark" ->6, "Hadoop" -> 11)
person: scala.collection.mutable.Map[String,Int] = Map(Hadoop -> 11, Spark -> 6)

scala> person += ("Flink" -> 5)
res5: person.type = Map(Hadoop -> 11, Spark -> 6, Flink -> 5)

scala> person -= "Flink"
res6: person.type = Map(Hadoop -> 11, Spark -> 6)

scala> val sparkValue = if (person.contains("Spark")) person("Spark") else 1000
sparkValue: Int = 6

scala> val sparkValue = person.getOrElse
getOrElse   getOrElseUpdate

scala> val sparkValue = person.getOrElse("Spark", 1000)
sparkValue: Int = 6

scala> val sparkValue = person.getOrElse("Flink", 1000)
sparkValue: Int = 1000

scala> for((key,value) <- person) println(key+":"+value)
Hadoop:11
Spark:6

scala> for((key,value) <- person) println(key+":")
Hadoop:
Spark:

scala> val person = scala.collection.mutable.S.Map("Spark" ->6, "Hadoop" -> 11)
Seq          SetProxy        Subscriber                  SynchronizedSet     
SeqLike      SortedSet       SynchronizedBuffer          SynchronizedStack   
Set          Stack           SynchronizedMap                                 
SetBuilder   StackProxy      SynchronizedPriorityQueue                       
SetLike      StringBuilder   SynchronizedQueue                               

scala> val person = scala.collection.immutable.S.Map("Spark" ->6, "Hadoop" -> 11)
Seq   SetProxy    SortedSet   Stream           StreamView       StringLike   
Set   SortedMap   Stack       StreamIterator   StreamViewLike   StringOps    

scala> val person = scala.collection.immutable.SortedMap("Spark" ->6, "Hadoop" -> 11)
person: scala.collection.immutable.SortedMap[String,Int] = Map(Hadoop -> 11, Spark -> 6)

TUPLE:
scala> val tuple = ("Spark", 6, 99.0)
tuple: (String, Int, Double) = (Spark,6,99.0)

scala> tuple._1
res9: String = Spark

scala> tuple._2
res10: Int = 6

scala> tuple._3
res11: Double = 99.0

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多