我想注册一个UDAF类(用Scala或Python编写),并在Spark SQL中使用它。
例如:
模拟代码
// mock code:
class MyUDAF extends UserDefinedAggregateFunction{
...
}
spark.udaf.registerJavaFunction("myagg", "MyUDAF",IntegerType)然后我可以直接在spark sql中使用udaf,如下所示:
spark.sql("select myagg(field) from mytable group by something")Spark只提供了注册UDF类的spark.udf.registerJavaFunction方法。
有人知道如何注册UDAF吗?
发布于 2019-02-01 05:55:26
您只需使用Hive SQL注册即可。
spark.sql("CREATE FUNCTION myagg AS 'com.mysite.MyUDAF'")
spark.sql("select myagg(field) from mytable group by something")发布于 2020-07-18 03:09:07
您可以对udaf执行相同的操作:
spark.udf.register("udaf_name", new UdafClass())然后你可以在Spark SQL中使用它。
https://stackoverflow.com/questions/54468469
复制相似问题