• map+case结构使用技巧


    people.txt文本如下

    lyzx1,19
    lyzx2,20
    lyzx3,21
    lyzx4,22
    lyzx5,23
    lyzx6,24
    lyzx7,25
    lyzx7,25,哈哈
    托塔天王
    import org.apache.spark.{SparkConf, SparkContext}
     
    class Start02 {}
     
    object Start02{
     
      /**
        * map 用法深度理解
        * 1、在map中使用if-else,if分支结构最好带上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)
      }
    }
  • 相关阅读:
    查询计划Hash和查询Hash
    执行计划的重用
    执行计划组件、组件、老化
    执行计划的生成
    查询反模式
    T-SQL 公用表表达式(CTE)
    SQL 操作结果集 -并集、差集、交集、结果集排序
    SQL语句
    POJ 1821 单调队列+dp
    区间gcd问题 HDU 5869 离线+树状数组
  • 原文地址:https://www.cnblogs.com/itboys/p/10299978.html
Copyright © 2020-2023  润新知