Code:
  val duration_dates = udf( (ci: Date, co: Date) => {
    val miliseconds_per_day = 24*60*60*1000
    val nDays = ( co.getTime() - ci.getTime() ) / miliseconds_per_day
    (0L until nDays).map(i => new Date(ci.getTime() + i * miliseconds_per_day) )
  }
  )我是一名Spark Scala编程的入门者,现在遇到一个问题,有一段prototype是udf的,现在执行报错
App > Exception in thread "main" java.lang.UnsupportedOperationException: Schema for type java.util.Date is not supported
请帮忙看看哪里有问题,谢谢

解决方案 »

  1.   

    你好,针对你这个问题,我使用spark-shell试了下,确实如此。
    然后找了官方资料查了查,并且给出解决方案,如下。解决方法:
    原因:
    Spark SQL and DataFrames support the following data types:
    Datetime type
        TimestampType: Represents values comprising values of fields year, month, day, hour, minute, and second.
        DateType: Represents values comprising values of fields year, month, day.

    TimestampType       java.sql.Timestamp    TimestampType
    DateType                java.sql.Date      DateType
      

  2.   

    补充一下,如果你要用到时分秒,请使用  java.sql.Timestamp