hql语法2

news/2024/11/17 0:53:03/

根据数据创建表

案例1:简单用户信息

1,admin,123456,男,18
2,zhangsan,abc123,男,23
3,lisi,654321,女,16
use hive01;
​
create table t_user(id int,uname string,pwd string,sex string,age int )
row format delimited fields terminated by ','; --指定 字段之间用 , 分隔
​
当我们创建表后 在HDFS上会产生对应的文件夹 
/user/hive/warehouse/hive01.db/t_user
但是此时里面没有任何文件 
我们可以将user.txt文件上传到这个位置
​
select  * from t_user;
+------------+---------------+-------------+-------------+-------------+
| t_user.id  | t_user.uname  | t_user.pwd  | t_user.sex  | t_user.age  |
+------------+---------------+-------------+-------------+-------------+
| 1          | admin         | 123456      | 男           | 18          |
| 2          | zhangsan      | abc123      | 男           | 23          |
| 3          | lisi          | 654321      | 女           | 16          |
+------------+---------------+-------------+-------------+-------------+
​

案例2:复杂人员信息

liuyan,tangtang_mimi,liuliu:18_yanyan:14,hui long guan_beijing
jinlian,dalang_qingqing,jinjin:18_lianlian:19_aa:20,chao yang_beijing
​

结构

{"name": "liuyan","friends": ["tangtang" , "mimi"] ,       //列表Array, "children": {                      //键值Map,"liuliu": 18 ,"yanyan": 14}"address": {                      //结构Struct,"street": "hui long guan" ,"city": "beijing" }
}

建表

create table test(
name string,
friends array<string>,
children map<string, int>,
address struct<street:string, city:string>
)
row format delimited fields terminated by ','
collection items terminated by '_'
map keys terminated by ':'
lines terminated by '\n';
-- 语法解释
row format delimited fields terminated by ','  -- 列分隔符
collection items terminated by '_'      -- MAP STRUCT 和 ARRAY 的分隔符(数据分割符号)
map keys terminated by ':'              -- MAP中的key与value的分隔符

复杂类型查询操作

1.数组

- arr[index]   取值
- size(arr)     长度
- 数组角标越界返回NULL
- explode(arr)
​
select name,friend[0],friend[1],friend[2] from t_user2;
+----------+-----------+-----------+-------+
|   name   |    _c1    |    _c2    |  _c3  |
+----------+-----------+-----------+-------+
| liuyan   | tangtang  | mimi      | NULL  |
| jinlian  | dalang    | qingqing  | NULL  |
+----------+-----------+-----------+-------+
​
select name,size(friend) as frendsize from  t_user2;
+----------+------------+
|   name   | frendsize  |
+----------+------------+
| liuyan   | 2          |
| jinlian  | 2          |
+----------+------------+
​

2.Map

map_keys(字段)  所有key
map_values(字段) 所有value
​
select map_keys(children),map_values(children) from t_user2;
+------------------------+----------+
|          _c0           |   _c1    |
+------------------------+----------+
| ["liuliu","yanyan"]    | [18,14]  |
| ["jinjin","lianlian"]  | [18,19]  |
+------------------------+----------+
select map_keys(children)[0],map_values(children)[0] from t_user2;
+---------+------+
|   _c0   | _c1  |
+---------+------+
| liuliu  | 18   |
| jinjin  | 18   |
+---------+------+
-- 根据key获取值
select children['liuliu'] from t_user2
+-------+
|  _c0  |
+-------+
| 18    |
| NULL  |
+-------+
​

3.Struct

select name,address.city,address.street from t_user2;
+----------+----------+---------------+
|   name   |   city   |    street     |
+----------+----------+---------------+
| liuyan   | beijing  | huilong guan  |
| jinlian  | beijing  | chao yang     |
+----------+----------+---------------+


http://www.ppmy.cn/news/84039.html

相关文章

LC-1080. 根到叶路径上的不足节点(递归DFS)

1080. 根到叶路径上的不足节点 难度中等126 给你二叉树的根节点 root 和一个整数 limit &#xff0c;请你同时删除树中所有 不足节点 &#xff0c;并返回最终二叉树的根节点。 假如通过节点 node 的每种可能的 “根-叶” 路径上值的总和全都小于给定的 limit&#xff0c;则该…

SARscape连接图编辑(ConnectGraph)

SARscape连接图编辑ConnectGraph 0 连接图是什么1 什么时候需要编辑连接图2 连接图编辑步骤 0 连接图是什么 连接图ConnectGraph就是差分干涉数据对的关系图。 在SARscape中进行干涉叠加Interferometric Stacking处理&#xff0c;常见的包括PS和SBAS。 首先就要根据数据的空间…

Redis底层原理深入学习

一、基本类型及底层实现 1.String 1&#xff09;使用场景&#xff1a;简单字符串存储、分布式锁、计数器、全局唯一ID 2&#xff09;数据结构&#xff1a;C语言中String用char[]表示&#xff0c;源码中用SDS封装char[]&#xff0c;这是Redis存储的最小单元&#xff0c;一个SD…

Filter详解

Filter是什么&#xff1a; Filter表示过滤器&#xff0c;是Java Web三大组件之一&#xff08;Servlet、Filter、Listener&#xff09;。 过滤器可以把对资源的请求拦截下来&#xff0c;从而实现一些特殊的功能。 过滤器一般完成一些通用的操作&#xff0c;比如&#xff1a;权…

Nginx配置文件

四.Nginx配置 1.位置 /usr/local/nginx/conf/nginx.conf2.内容 Nginx的主配置文件是nginx.conf&#xff0c;这个配置文件一共由三部分组成&#xff0c;分别为全局块、events块和http块。在http块中&#xff0c;又包含http全局块、多个server块。每个server块中&#xff0c;可…

【Jasypt】Spring Boot 配置文件加解密 Jasypt 配置文件加密

Spring Boot 配置文件加解密 一、Jasypt简介二、集成方法2.1 方式一2.2 方式二2.3 方式三 三、Springboot整合Jasypt实战3.1 引入依赖3.2 编写配置类&#xff0c;配置相关信息3.3 使用Jasypt对数据库密码加密&#xff0c;并替换明文3.4 查看执行结果 四、拓展4.1 关于加解密秘钥…

java基础入门-14-【集合(泛型Set数据结构)】

Java基础入门-14-【集合(泛型&Set&数据结构)】 23、集合(泛型&Set&数据结构)1.泛型1.1 泛型概述1.2 泛型的好处1.3 泛型的细节1.4 代码案例1.5 泛型可以在很多地方进行定义1.6 泛型类1.7 泛型类的书写1.8 泛型方法1.9 泛型方法的练习1.10 泛型接口1.11 泛型…

图解LeetCode——138. 复制带随机指针的链表

一、题目 给你一个长度为 n 的链表&#xff0c;每个节点包含一个额外增加的随机指针 random &#xff0c;该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成&#xff0c;其中每个新节点的值都设为其对应的原节点的值。…