Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala spark UDF don';不接受数组_Scala_Apache Spark - Fatal编程技术网

Scala spark UDF don';不接受数组

Scala spark UDF don';不接受数组,scala,apache-spark,Scala,Apache Spark,为什么Spark UDF函数不支持scala数组,而WrappedArray UDF工作正常? 这里在函数定义数组[Date]中给出了类强制转换异常。一旦换成WrappedArray,它的效果就很好了 def getDate(listOfDate:mutable.WrappedArray[Date], packageSD:Date, durationrange:Int):Date = { var nextdate = packageSD.toLocalDate.plusDays(durati

为什么Spark UDF函数不支持scala数组,而WrappedArray UDF工作正常? 这里在函数定义数组[Date]中给出了类强制转换异常。一旦换成WrappedArray,它的效果就很好了

def getDate(listOfDate:mutable.WrappedArray[Date], packageSD:Date, durationrange:Int):Date = {
  var nextdate = packageSD.toLocalDate.plusDays(durationrange)
  var billdate:Date = null
  var mindays = durationrange
  var billingdate = listOfDate.map(rec=>
    {
      println("list date"+rec)
      var recdate = rec
      var daysDiff = Math.abs(ChronoUnit.DAYS.between(recdate.toLocalDate,nextdate)).toInt
      if(daysDiff<=mindays) {
        mindays = daysDiff
        billdate = recdate
      }
      println("prefst"+recdate)
      println("nextdate"+nextdate)
      println("billdate"+billdate)
      println("mindays"+mindays)
    }
  )
      return billdate
}

import org.apache.spark.sql.functions.udf
val udffn = udf(getDate _)
def getDate(listOfDate:mutable.WrappedArray[Date],packageSD:Date,durationrange:Int):日期={
var nextdate=packageSD.toLocalDate.plusDays(持续时间范围)
var billdate:Date=null
var mindays=持续时间范围
var billingdate=listOfDate.map(rec=>
{
println(“列表日期”+rec)
var recdate=rec
var daysDiff=Math.abs(ChronoUnit.DAYS.between(recdate.toLocalDate,nextdate)).toInt

if(daysDiffUDF需要一个
Seq
WrappedArray
是一个
Seq
,而
Array
不是
Seq