Presto与Hive语法差异
Presto与Hive的语法差异示例:
|
Presto
|
Hive
|
备注
|
---|---|---|---|
数组 | 数组有动态下标,下标从1开始 | 下标从0开始 | |
标识符 | 不能以数字开头命名,与java保持一致 | 无 | |
string | varchar | string | |
运算 | 5/2=2 (presto取整) | 5/2=2.5 (hive自动转换为小数点类型) | |
列转行 | unnest | laterval view explode() | |
JSON处理 | json_extract_scalar | get_json_object | |
date转string(是否支持隐式转换) | 不支持 | 支持 | |
concat | char和varchar不支持连接 | 支持 | |
semi join | 不支持 | 支持 | |
cross join | 不支持on |
支持on |
|
大表小表关联 | 需要把大表放在前面(手动操作) | hive小表放到前面效率高(自带优化) | |
cube函数 | presto:group by cube (gn,server_id,group_base,pl) | hive:group by gn,server_id,group_base,pl with cube | |
nvl函数 | 不支持nvl函数,可以使用coalesce代替; | nvl(name,-9) |
posted on 2022-08-22 19:39 RICH-ATONE 阅读(345) 评论(0) 编辑 收藏 举报