在我的工作中的一个案例中,我需要从给定日期计算月份中的一周和一年中的一周。 在Spark 1.5.0中,有一个内置函数可用于计算相同的值。
import org.apache.spark.sql.functions._
val WeekOfMonth = date_format($"GivenDate","W")
val WeekOfYear = weekofyear($"GivenDate")
此值将一周的开始日期定为星期日。
但我想计算月份中的一周和一年中的一周,星期四作为一周的开始。我该怎么做?
我想出了一种方法来查找以星期四为一周开始的月份和一周中的一周。下面是我用来实现相同目标的代码。
import java.sql.Timestamp
import java.text.SimpleDateFormat
import java.util.Calendar
val dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
val dateValue = dateFormat.parse(givenDate)
val cal = Calendar.getInstance()
cal.setTime(dateValue)
cal.setFirstDayOfWeek(Calendar.THURSDAY)
cal.setMinimalDaysInFirstWeek(1)
val weekOfMonth = cal.get(Calendar.WEEK_OF_MONTH)
val weekOfYear = cal.get(Calendar.WEEK_OF_YEAR)
希望这对某人有帮助。谢谢。