spark基礎 scala
阿新 • • 發佈:2018-12-25
最近一段時間由於專案需要,開始接觸 大資料,學習了hadoop,spark,對C++程式設計師來說 大資料還是挺新穎的。
1、scala 函數語言程式設計
函式像變數一樣,既可以作為函式的引數使用,也可以將函式賦值給一個變數.
object App { def main(args:Array[String]):Unit= { def fun(str1:String,str:String)= { str+"\t"+str2 } println(fun("Spark","Hadoop")) //將函式賦值給一個變數 val add=(str1:String,str2:String)=>str+"\t"+str2 println(add("Spark","Hadoop")) //將函式做為引數使用 def g(f:(String,String)=>String,str1:String,str2:String)= { val line=f(str1,str2) println(line) } g(add,"spark","Hadoop") } } 執行結果 Spark Hadoop Spark Hadoop Spark Hadoop
2、高階函式
Scala中的高階函式包括兩種: 將一個函式作為引數的函式稱為高階函式 ;將一個返回值是函式的函式稱為高階函式.
object App { def main(args:Array[String]):Unit= { val sayHello:()=>Unit=()=>println("Hello") //高階函式的第一種:將函式作為引數的函式 def g(f:()=>Unit,num:Int)= { for(i<-1 to num) f() } g(sayHello,3) //高階函式的第二種:返回值是函式的函式 def saySomething(str1:String)=(str2:String)=>println(str1+"\t"+str2) val aa:String=>Unit=saySomething("Spark") aa("Hadoop") } } 執行結果 Hello Hello Hello Hello Spark Hadoop
spark RDD 一些操作