【发布时间】:2017-08-28 19:44:08
【问题描述】:
输入:
f1 : [["2017-08-08","2017/08/08"],["2017-08-08","2017/08/08"]]
f1 的架构:ArrayType(ArrayType(StringType))
我想使用 spark UDF 将日期值从字符串转换为日期格式。
这里输入可能有Array[Any]。我写过适用于像["2017-08-07","2013/08/02"] 这样的单维值的udf。对于单维我的 udf 将是:
def toDateFormatUdf(dateFormat:String) = udf(( dateValue: mutable.WrappedArray[_]) => dateValue match{
case null => null
case datevalue: mutable.WrappedArray[String] => datevalue.map(date => new java.sql.Date(new SimpleDateFormat(dateFormat).parse(String.valueOf(date)).getTime))
})
我尝试使用 Seq[Row] 类型作为 UDF 参数,但无法形成逻辑。 Scala中的多维数组有什么方法可以实现UDF?
【问题讨论】:
标签: scala apache-spark multidimensional-array nested user-defined-functions