zoukankan      html  css  js  c++  java
  • scala日期处理函数

    tryParseLocalDate 字符串转化为日期
    
    minusMonths 减一个月,3月15调用结果为2月15;3月31的调用结果为2月28(如果是闰年则是29)
    
    plusMonths 加一个月,对返回日期的处理同上
    
    dayOfWeek 返回星期几,返回值为Property对象,需要调用get方法获取int值
    
    
    withMinimumValue 对某个属性加工,把这个属性变成范围内最小值,返回修改之后的时间,例如:tryParseLocalDate("2020-6-30").dayOfWeek().withMinimumValue() 返回"2020-6-29",因为29号是星期一,即一周的最小值;该方法同样适用于获取月份第一天
    
    withMaximumValue 对某个属性加工,把这个属性变成范围内最大值,返回修改之后的时间,例如:tryParseLocalDate("2020-6-30").dayOfWeek().withMaximumValue() 返回"2020-7-05",因为7月5号是星期日,即一周的最大值;该方法同样适用于获取月份最后一天
    
    someDate.dayOfMonth().withMaximumValue() 返回someDate对应月份的最后一天
    
    
    
     

    Spark 测试类

    package com.xx.xxx
    
    import org.apache.spark.sql.SparkSession
    import org.apache.spark.sql.functions.{substring, when}
    
    object AgeGroupUtils {
    //  def get5YearsAgeGroup(age: Integer): String = {
    //    val ageGroup = age match {
    //      case age if (age == null || age < 15) => SparkConfig.UNSPECIFIED
    //      case age if (age <= 25 && age >= 15) => SparkConfig.AGE_15TO25
    //      case age if (age <= 35 && age >= 26) => SparkConfig.AGE_26TO35
    //      case age if (age <= 45 && age >= 36) => SparkConfig.AGE_36TO45
    //      case age if (age <= 55 && age >= 46) => SparkConfig.AGE_46TO55
    //      case age if (age <= 100 && age >= 56) => SparkConfig.AGE_56TO100
    //      case age if (age > 100) => SparkConfig.UNSPECIFIED
    //      case _ => SparkConfig.UNSPECIFIED
     //   }
     //   ageGroup
      }
    
    
      def main(args: Array[String]): Unit = {
    
        val spark = SparkSession.builder
          .master("local")
          .appName("appName")
          .getOrCreate()
        import spark.implicits._
        var data3 = Seq(
          (null, "11", "22", "null", "1"),
          (null, "11", "22", "2020-01-02", "2"),
          ("666","10010", "19219", "5666", "3")
        ).toDF("DRCN_BirthYear", "DRCN_AgeFrom", "DRCN_AgeTo", "DRCN_RegDate", "id")
            .select(
              $"id",
              $"DRCN_RegDate",
              substring($"DRCN_RegDate",0,4) as "tmp",
              substring($"DRCN_RegDate",0,4)-($"DRCN_AgeFrom"+$"DRCN_AgeTo")/2 as "Y",
              when($"DRCN_BirthYear".isNotNull or $"DRCN_AgeFrom".isNull or $"DRCN_AgeTo".isNull,$"DRCN_BirthYear")
                .otherwise((substring($"DRCN_RegDate",0,4)-($"DRCN_AgeFrom"+$"DRCN_AgeTo")/2).cast("int")) as "BirthYear"
            )
        data3.show()
    
    
        var m: Integer = null;
    
     //   println(get5YearsAgeGroup(m))
     //   println(get5YearsAgeGroup(33))
     //   println(get5YearsAgeGroup(66))
     //   println(get5YearsAgeGroup(166))
      }
    }
    
  • 相关阅读:
    软件测试之po设计模式
    Python_标识符及命名规范
    python基础(第一个python程序)
    计算机基础知识
    注册界面测试案例
    vscode使用-添加格式化插件
    工作-提交review失败
    工作-大首页走测试环境
    jquery--选择器 第几
    a标签href无值,点击刷新页面解决办法
  • 原文地址:https://www.cnblogs.com/sen-2017/p/13213844.html
Copyright © 2011-2022 走看看