Try instead:

import org.apache.spark.sql.functions._

val determineDayPartID = udf((evntStDate: String, evntStHour: String) => {
    val stFormat = new java.text.SimpleDateFormat("yyMMdd")
    var stDateStr:String = evntStDate.substring(2,8)
    val stDate:Date = stFormat.parse(stDateStr)
    val stHour = evntStHour.substring(1,3).toDouble + 0.1
    var bucket = Math.ceil(stHour/3.0).toInt
    val cal:Calendar = Calendar.getInstance
    cal.setTime(stDate)
    var dayOfWeek = cal.get(Calendar.DAY_OF_WEEK)
    if (dayOfWeek == 1) dayOfWeek = 8
    if (dayOfWeek > 6) bucket = bucket + 8
   bucket

  })

input.withColumn("DayPartID", determineDayPartID (col("StartDate"),
col("EventStartHour")))

Reply via email to