调用一个方法,将鼠标移动到括号里面,会自动给出提示
如果是一般参数,不会出现f。如果是黑色加粗,说明是必须得有,如果没有加粗,说明可以没有 如果出现f,说明是个函数 def main(args: Array[String]): Unit = { val conf = new SparkConf().setAppName("Test").setMaster("local") val sc = new SparkContext(conf) val myArray=Array(1,1,2,3,4,5) val rdd=sc.parallelize(myArray) //reduce(f: (T, T) ⇒ T): T 官网给出的说明。意思是参数是一个函数。函数的参数是一个int对,返回值是一个int def func_reduce(a:Int,b:Int):Int={ return 10 } val reduce_func1__rdd=rdd.reduce(func_reduce) println("reduce_func1" + reduce_func1__rdd) //这里是匿名函数 val reduce_func2_rdd=rdd.reduce( (x,y)=> x+y ) println(" reduce_fun2"+ reduce_func2_rdd ) //返回一个pair类型的RDD RDD[key,value] val rdd_par=rdd.map( (x)=> (x,x*10) ) //把key相同的pair组合在一起,并且key相同的value相加 val count1=rdd_par.reduceByKey( (x,y) => x+y ) //更加简单的匿名函数 _._2 每个pair的第二个值 val pair_to_int_1=rdd_par.map(_._2) //直接用函数实现 def myFunc(pair:(Int,Int)):Int={ pair._2 } val pair_to_int_2=rdd_par.map(myFunc) pair_to_int_1.foreach( println(_) ) pair_to_int_2.foreach( println(_) ) sc.stop() }