开发者社区> 问答> 正文

Hive与MaxCompute在自定义函数中的区别是什么?

Hive与MaxCompute在自定义函数中的区别是什么?

展开
收起
游客k7rjnht6hbtk6 2021-12-08 13:12:29 579 0
1 条回答
写回答
取消 提交回答
  • Hive与MaxCompute均支持自定义函数UDF、UDTF、UDAF。MaxCompute 2.0版本升级后,Java UDF支持的数据类型从原来的BIGINT、STRING、DOUBLE、BOOLEAN扩展了更多基本的数据类型,同时还扩展支持了ARRAY、MAP、STRUCT以及Writable等复杂类型。使用复杂数据类型的方法,STRUCT对应com.aliyun.odps.data.Struct。com.aliyun.odps.data.Struct从反射看不出Field Name和Field Type,所以需要用@Resolve注解进行辅助。即如果需要在UDF中使用STRUCT等数据类型,要求在UDF Class上也标注@Resolve注解。但是当STRUCT类型中的field有很多字段时,需要手动添加@Resolve注解。针对此问题,可以使用Hive 中的GenericUDF去实现。MaxCompute 2.0支持Hive风格的UDF,部分Hive UDF、UDTF可以直接在MaxCompute上使用。

    2021-12-08 13:16:11
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
大数据AI一体化的解读 立即下载
极氪大数据 Serverless 应用实践 立即下载
大数据&AI实战派 第2期 立即下载