Hive 语法总结 Hive 语法总结是一种基于 Hadoop 的数据仓库工具,它提供了类似 SQL 的查询语言,用于处理和分析大规模数据。下面是 Hive 语法总结的知识点: 1. SELECT 语句 Hive 的 SELECT 语句结构如下: SELECT [ALL | DISTINCT] select_expr, select_expr, ... FROM table_reference [WHERE where_condition] [GROUP BY col_list] [CLUSTER BY col_list | [DISTRIBUTE BY col_list] [SORT BY col_list] ] [LIMIT number] 其中,table_reference 是查询的输入,可以是一个普通表、一个视图、一个 join 或一个子查询。 2. WHERE 子句 WHERE 子句用于过滤数据,WHERE 语句部分是布尔表达式,例如: SELECT * FROM sales WHERE amount > 10 AND region = "US" Hive 不支持在 WHERE 子句中的 IN、EXIST 或子查询。 3. ALL 和 DISTINCT ALL 和 DISTINCT 是 SELECT 语句中的选项,用于区分对重复记录的处理。默认是 ALL,表示查询所有记录。DISTINCT 表示去掉重复的记录,DISTINCT 作用于后面的所有列。 4. 基于 Partition 的查询 Hive 支持基于 Partition 的查询,可以利用分区剪枝的特性,只扫描一个表中它关心的那一部分。例如,如果 page_views 表使用 date 列分区,以下语句只会读取分区为‘2008-03-01’的数据。 SELECT page_views.* FROM page_views WHERE page_views.date >= '2008-03-01' AND page_views.date<'2008-03-02' 5. HAVING 子句 Hive 目前不支持 HAVING 子句,可以将 HAVING 子句转化为一个子查询。例如: SELECT col1 FROM t1 GROUP BY col1 HAVING SUM(col2) > 10 可以用以下查询来表达: SELECT col1 FROM (SELECT col1, SUM(col2) AS col2sum FROM t1 GROUP BY col1) t2 WHERE t2.col2sum > 10 6. LIMIT 子句 LIMIT 子句用于限制查询的记录数,查询的结果是随机选择的。例如: SELECT * FROM t1 LIMIT 5 7. Top k 查询 Top k 查询用于查询销售记录最大的 5 个销售代表。例如: SET mapred.reduce.tasks = 1 SELECT * FROM sales SORT BY amount DESC LIMIT 5 8. REGEX Column Specification SELECT 语句可以使用正则表达式做列选择,例如: SELECT `(ds|hr)?+.+` FROM sales 9. Join Hive 支持 JOIN 操作,例如: SELECT * FROM sales JOIN department ON sales.department_id = department.department_id 10.Sort by Hive 的 Sort 排序将根据列的数据类型来定。如果数字类型的列,则排序顺序以数字类型的顺序;如果字符串类型的列,则排序顺序以字典类型的顺序。 11. Hive 限制 Hive 限制包括: * 不支持更新、事务、索引,是全表扫描。 * 创建表的字段类型和 Java 类型是对应的,不支持日期类型,提供转换为字符串类型的函数。 * 查询语句中,不支持 HAVING, 可写嵌套的 SELECT 来解决;GROUP BY 后只能是表的定义列名,不能像 MySQL 那样可以为查询语句为逻辑处理结果声明的别名,但可为逻辑处理过程语句。 * 内置函数查看命令(show functions;desc function 函数名)。 * Hive 中分托管表和外部表,不同的主要是在 drop 时,托管表,从 Hive 中删除元数据和表数据;外部表,只能删除元数据。 * Hive 中加载表数,等等。













剩余9页未读,继续阅读


- 粉丝: 0
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 多云管下的自动化运维架构.pptx
- 软件项目管理C进度计划管理.ppt
- LOTUS的办公自动化系统的设计方案与实现.doc
- 大数据环境下技术创新管理方法研究.docx
- (免费下载)数控铣床铣削编程与操作设计.doc
- 学校网站管理员工作总结.docx
- 微服务平台技术可行性分析.docx
- 汽车制造企业精益物流信息化管理分析.docx
- AlphaGo胜利后-人工智能朝哪走.docx
- word格式模板:唯美绿色中国风卡通信纸-word信纸.docx
- LED流水灯研究设计单片机控制.doc
- 级财大赤道银行项目管理策划书final.doc
- 弱电工程施工项目管理研究.docx
- 论网络虚拟财产的民法保护.docx
- 电气工程中电气和自动化设计的融合应用.docx
- 网络工程设计需求分析.ppt


