【发布时间】:2018-08-22 07:02:04
【问题描述】:
我正在尝试使用以下代码在 Spark 2.2 中创建 UDF:
spark.udf.register(
"DAYOFWEEK",
(timestamp: java.sql.Timestamp) => {
new Timestamp()
val cal = Calendar.getInstance()
cal.setTime(timestamp)
cal.get(Calendar.DAY_OF_WEEK)
}
稍后,当启动下一个 SQL 查询时:
SELECT DAYOFWEEK(now())
出现下一个异常:
cannot resolve 'UDF:DAYOFWEEK(current_timestamp())' due to data type mismatch: argument 1 requires bigint type, however, 'current_timestamp()' is of timestamp type.; line 1 pos 7;
我做错了什么?
【问题讨论】:
-
你有不同的UDF,它以bigint为参数吗?
-
SELECT DAYOFWEEK(now())没有问题。你一定是在传递别的东西
标签: apache-spark apache-spark-sql