最近、プロジェクトのニーズからビッグデータに触れ始め、ハドゥープとスパークについて学びました。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には2つのタイプの高次関数があります。1つは関数をパラメーターとして受け取る関数を高次関数と呼び、もう1つは関数を返す関数を高次関数と呼びます。
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
SparkRDDのいくつかの操作