標籤:
王家林親傳《DT大資料夢工廠》第四講For與Function進階實戰、Lazy的使用
你想瞭解大資料,你想成為年薪百萬嗎?那你還等著什麼,快點來吧!跟著王家林老師學習spark大資料
第四講For與Function進階實戰、Lazy的使用
For迴圈
object For_Function_Advanced{
def main ( args: Array[String]): Unit ={
for(i <- 1 to 2;j <- 1 to 2)print((100*i + j) + “ ”)
printIn
for(i <- 1 to 2;j <- 1 to 2 if i !=j)print((100*i + j) + “ ”)//添加條件運算式
printIn
函數
def addA(x : Int) = x +100
val add = (x : Int) => x+200\\匿名函數
printIn(“The result from a function is :” + addA(2))
printIn(“The result from a val is :” + add(2))
Scala特點:函數是有值得;可以作為函數的參數去傳遞
Def fac(n:Int):Int = if ( n <= 0) 1 else n * fac(n - 1)
printIn(“The result from a fac is : ” + fac(10))
遞迴演算法的函數要有傳回值類型
函數參數預設值
def combine(content:String, left:String = “[“,right:String = “]”) =left + content +right
printIn(“The result from a combine is :” +combine (“ I love Spark))
函數的參數是可變的
def connected(args:Int*) = {
var result =0
for(arg <- args) result +=arg
result
}
printIn(“The result from a connected is :” +connected(1,2,3,4,5))
Lazy使用
object LazyOps {
def main (args: Array[String]): Unti = {
lazy val file = Source.fromFile(“F:\\tuiguangneirong1.docx”)
printIn(“Scala”)
for( line <- file.getLines) printIn(line)
}
}
//Lazy 第一次使用的時候才執行個體化;順延強制,懶執行,對同一個資料處理有迭代的計算
通過簡單程式碼範例,從基礎瞭解For迴圈,和For迴圈以後常用的方式(帶有條件運算式)與Function基本(遞迴演算法的函數要有傳回值類型
和Scala的小特點:函數是有值得;可以作為函數的參數去傳遞)、Lazy的使用。希望自己跟著老師學習一點一點進步;
如果你瞭解的還是不清楚,你也可以學習此視頻或者是記錄一下連絡方式
視頻地址:http://www.tudou.com/programs/view/ge646hSN8tc/
學習地址:http://mp.weixin.qq.com/s?__biz=MzAwNjAwODI3Mg==&mid=212579488&idx=2&sn=883193df2b3df163d49c4fdec1ecd585&scene=5#rd
王家林親傳《DT大資料夢工廠》第四講For與Function進階實戰、Lazy的使用