常用操作 经常用到
/**
* Created by 一个蔡狗 on 2020/3/31.
*/
object Spark {
// 重要操作!!!!
def main(args: Array[String]): Unit = {
var A0 =Array(1,2,3,4,5)
var A1 =Array(6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,1,2,3,4,5)
var A2 =Array("zhangsan lisi wangwu","hadoop hive hbase","beijing shanghai nanjing")
//1. 输出集合大小
// println(A1.length)
//2. 遍历输出 每一个数据 map遍历 数据里面的 每一个值 (把数据逐一拿出来 1. x 表示 每一个元素 2. => 进行操作 )
// 方式 1
var aa = A1.map(x => x*2 ).map(println)
// 方式 2
var aa = A1.map(x => x*2 )
aa.map(println)
//方式3
var aa = A1.map(x => x*2 ).map(y=>y-1).map(println)
// 复杂 逻辑 u=>{ 复杂操作 }
var aa = A1.map(x => x*2 ).map(y=>y-1).map(u=>{
// 可以写 复杂 操作
u-10
}).map(println)
//3. 只保留 大于10 的数据 filter 过滤器
// .filter( ) 返回 boolean 类型 true or false
// 保留 返回 true 的数据 .filterNot 相反的 数据
// var bb = A1.filter( x => if (x>10) true else false).map(println)
// bb.map(println)
var bb = A1.filterNot( x => if (x>10) true else false).foreach(println)
// 计算总和
// var sum =A1.reduce((a,b)=>a+b)
// println(sum)
/** a 和 b 分别是什么 ??
* 6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,1,2,3,4,5
*
* a = 6 b =7 => 13
* a =13 b =8 => 21
*
* _1 = 6 _2 =7 => 13
* _1 = 13 _2 =8 => 13
*/
var sum1 =A1.reduce(_+_)
// println(sum1)
// 升序
// A1.sortBy(x=> x).foreach(println)
// 降序
// A1.sortBy(a => -a).map(println)
// 多个抽成一个 flatMap : 将数组中的数组 (嵌套数组) 抽成一个数组 (扁平化)
// Array( Array(1,2,3), Array(4,5,6), Array(7,8,9)) => Array(1,2,3,4,5,6,7,8,9)
A2.flatMap(x => x.split(" ")).foreach(println)
//奇数 偶数 分开 元组类型 (ctrl + Alt + v 出来)
var pp = A1.partition( { x:Int => x%2 == 0 } )
// println(pp._1.mkString(",")) return 2,4
// println(pp._2.mkString(",")) return 1,3,5
}
}