最近一段时间由于项目需要,开始接触 大数据,学习了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 一些操作