计算WeekOfMonth& WeekOfYear来自Apache Spark中的给定日期

时间:2016-02-28 10:32:35

标签: apache-spark pyspark apache-spark-sql

在我的工作中的一个案例中,我需要计算从给定日期开始的一周中的一周和一周。在Spark 1.5.0中,有一个内置函数可用于计算它。

import org.apache.spark.sql.functions._
val WeekOfMonth = date_format($"GivenDate","W")
val WeekOfYear = weekofyear($"GivenDate")

此值以星期日开始。星期日 但是我想用星期四作为一周的开始来计算一周中的一周和一周。我怎么能这样做?

1 个答案:

答案 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)  

希望这有助于某人。谢谢。