spark获取时间
Posted 彩色条纹小斑马
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spark获取时间相关的知识,希望对你有一定的参考价值。
在spark 中获取时间用到java.util.{Calendar,Date} 以及java.text.SimpleDateFormat来对时间输出格式作规范
首先先导入包
import java.text.SimpleDateFormat
import java.util.{Calendar, Date}
获取当前时间
def getNowTime(): String = { //实例化一个Date对象并且获取时间戳 val time = new Date().getTime //设置时间格式 val format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss") //将时间格式套用在获取的时间戳上 format.format(time) }
调用该函数得到的结果为
2017-06-16 09:57:16
当想要获取非今天时间或者年份,月份,日期,小时,则要用到Calendar包
val cal = Calendar.getInstance //实例化Calendar对象
如果想获取昨天的时间
//将-1添加到Calendar.Date中,即加载到昨天的时间 //day为1时,就是在当前时间加一天,即是明天 cal.add(Calendar.DATE, -1) val time: Date = cal.getTime //获取时间 val newtime: String = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(time) //设置格式并且对时间格式化
如果想获取年,月,日,小时等
val year = cal.get(Calendar.YEAR)
println("年份:"+year)
val month = cal.get(Calendar.MONTH)
println("月份:"+(month+1)) //国外的月份是从0-11,所以要加1
val Day = cal.get(Calendar.DAY_OF_MONTH)
println("日子:"+Day)
val hour = cal.get(Calendar.HOUR_OF_DAY)
println("小时:"+hour)
val minute = cal.get(Calendar.MINUTE)
println("分钟:"+minute)
输出的结果为:
年份:2017
月份:6
日子:16
小时:10
分钟:35
以上是关于spark获取时间的主要内容,如果未能解决你的问题,请参考以下文章
spark关于join后有重复列的问题(org.apache.spark.sql.AnalysisException: Reference '*' is ambiguous)(代码片段