使用scala開發spark時,map+case結構使用技巧
阿新 • • 發佈:2018-12-13
scala開發Spark程式時使用map +case結構的一點小技巧
people.txt文字如下
lyzx1,19
lyzx2,20
lyzx3,21
lyzx4,22
lyzx5,23
lyzx6,24
lyzx7,25
lyzx7,25,哈哈
托塔天王
package com.lyzx.start import org.apache.spark.{SparkConf, SparkContext} class Start02 {} object Start02{ /** * map 用法深度理解 * 1、在map中使用if-elseif分支結構最好帶上else 表示把所有的情況都考慮全 否則會返回預設的空值 * 2、在map中使用case是scala的用法和spark沒有關係 同樣要使用case 最好帶上 case _ 表示所有的情況都考慮完全 * 否則容易出異常 * @param args */ def main(args: Array[String]): Unit = { val sparkConf = new SparkConf() sparkConf.setAppName("case_test") sparkConf.setMaster("local[2]") val sparkContext = new SparkContext(sparkConf) val rdd = sparkContext.textFile("files/people.txt") rdd.map(line=>line.split(",")) .map( line=>if(line.length == 1) (line(0)) else if(line.length == 2) (line(0),line(1)) else (line(0),line(1),line(2)) ) .map{ case (one) => ("one:"+one) case (name,age) =>("name:"+name,"age:"+age) case _ => ("_name","_age","_") } .foreach(println) } }