Hive SQL与MaxCompute SQL在自定义函数上的区别是什么?
**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上使用。 **(6)MapReduce开发:**MapReduce是一个基于集群的计算平台,是一个简化分布式编程的计算框架,是一个将分布式计算抽象为Map和Reduce两个阶段的编程模型。MaxCompute提供三个版本的MapReduce编程接口:MaxCompute MapReduce、MapReduce(MR2)、Hadoop兼容版本MapReduce。MaxCompute MapReduce是MaxCompute的原生接口,执行速度更快、开发更便捷、不暴露文件系统。MR2是对MaxCompute MapReduce的扩展,支持更复杂的作业调度逻辑,MapReduce的实现方式与MaxCompute原生接口一致。 Hadoop兼容版本MapReduce特点是高度兼容Hadoop MapReduce ,与MaxCompute MapReduce MR2不兼容。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。