在我的工作中的一个案例中,我需要计算从给定日期开始的一周中的一周和一周。在Spark 1.5.0中,有一个内置函数可用于计算它。
import org.apache.spark.sql.functions._
val WeekOfMonth = date_format($"GivenDate","W")
val WeekOfYear = weekofyear($"GivenDate")
此值以星期日开始。星期日 但是我想用星期四作为一周的开始来计算一周中的一周和一周。我怎么能这样做?
答案 0 :(得分:0)
我找到了一种方法,可以找到星期几和星期几,星期四作为一周的开始。下面是我用来实现同样的代码。
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)
希望这有助于某人。谢谢。