Spark-sparksql-自定义udf

来源:互联网 发布:阿里妈妈淘宝联盟推广 编辑:程序博客网 时间:2024/06/05 20:56

注册一个判断指定日期的星期数的SQL函数

object UDFUtils {  def main(args: Array[String]) {    println(dayOfWeek("2017-05-14"))  }  def registerUDF(sqlContext: SQLContext, udfName: String): Unit = {    udfName match {      case "dayOfWeek" => sqlContext.udf.register(udfName, dayOfWeek _)    }  }  def dayOfWeek(dateStr: String): Int = {    val sdf = new SimpleDateFormat("yyyy-MM-dd")    val date = sdf.parse(dateStr)    //    val sdf2 = new SimpleDateFormat("EEEE")    //    sdf2.format(date)    val cal = Calendar.getInstance();    cal.setTime(date);    var w = cal.get(Calendar.DAY_OF_WEEK) - 1;    //星期天 默认为0    if (w <= 0)      w = 7    w  }}
原创粉丝点击