我是spark和spark SQL的新手,我正在尝试使用spark sql查询一些数据。
我需要从一个以字符串形式给出的日期中获取月份。
我认为直接从sparkqsl查询月份是不可能的,所以我在考虑用scala编写一个用户定义的函数。
有没有可能用sparkSQL编写自定义函数,如果可能的话,有没有人能建议写自定义函数的最好方法。
发布于 2017-05-27 03:11:25
在Spark 2.0中,您可以执行以下操作:
// define the UDF
def convert2Years(date: String) = date.substring(7, 11)
// register to session
sparkSession.udf.register("convert2Years", convert2Years(_: String))
val moviesDf = getMoviesDf // create dataframe usual way
moviesDf.createOrReplaceTempView("movies") // 'movies' is used in sql below
val years = sparkSession.sql("select convert2Years(releaseDate) from movies")
https://stackoverflow.com/questions/25031129
复制相似问题