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 阅读(465) 评论(0) 收藏 举报
浙公网安备 33010602011771号