1. 程式人生 > >spark基礎 scala

spark基礎 scala

最近一段時間由於專案需要,開始接觸 大資料,學習了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 一些操作