开发者社区> 问答> 正文

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

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

展开
收起
游客qzzytmszf3zhq 2021-12-08 21:31:55 882 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上使用。 **(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不兼容。

    2021-12-08 21:35:56
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Hive Bucketing in Apache Spark 立即下载
spark替代HIVE实现ETL作业 立即下载
2019大数据技术公开课第五季—Hive迁移到MaxCompute最佳实践 立即下载