首页 > 其他分享 >hive string, map, struct类型的建表和导入数据语句

hive string, map, struct类型的建表和导入数据语句

时间:2023-09-25 19:34:30浏览次数:44  
标签:map 建表 string -- type data joe complex01

本文转载于 https://blog.51cto.com/u_14405/6419362,https://blog.csdn.net/tototuzuoquan/article/details/115493697 和 https://blog.csdn.net/weixin_43597208/article/details/117450579。

今天要用到hive的string相关的数据类型和数据,直接附链接和sql语句

Hive的String类型的datatype如下
https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=82706456#LanguageManualTypes-string

 创建表和插入数据的sql语句,map类型的数据插入用到了str_to_map和map, struct类型的数据插入用到了named_struct.

-- create table
-- 创建表语句请在dbeaver中运行。如果在dbvisualizer中,会把<street:string, city:string>中的冒号string当成参数
drop table joe.type_complex01;
create table if not exists joe.type_complex01(
name string,
friends array<string>,
children map<string, string>,
address struct<street:string, city:string>
)
row format delimited fields terminated by ","
collection items terminated by "_"
map keys terminated by ":"
lines terminated by "\n";

-- data
songsong,bingbing_lili,xiao song:18_xiaoxiao song:19,hui long guan_beijing
yangyang,caicai_susu,xiao yang:18_xiaoxiao yang:19,chao yang_beijing
-- load data 因为远端无法load data,只能用insert 语句插入数据
load data local inpath "/data/type_complex01.txt" into table joe.type_complex01;
-- load data local inpath "/data/type_complex01.txt": No files matching path file:/opt/hive/bin/type_complex01.txt
-- load data inpath "type_complex01.txt": No files matching path hdfs://namenode:8020/user/root/type_complex01.txt

-- insert data 最好在dbvisualizer中运行,可以连续运行多条语句
insert into joe.type_complex01 select 'name01',array('friend01','xiaoli'),str_to_map('xiao song:18, xiaoxiao song:19',',',':'),named_struct('street','hui long', 'city','guan_beijing');

-- 如果children 的类型为:map<string, int>, insert into joe.t_complex02 select 'name13',array('friend12','xiaoli'),map('child01',18,'child02',8),named_struct('street','hui long', 'city','guan_beijing'); -- select * from joe.type_complex01; -- 通过索引进行查询 select name, friends[0] from joe.type_complex01; ---- Map中数据查询 -- 查询Map中所有key select name,map_keys(children) from joe.type_complex01; -- 指定key查询value select name,children["xiao song"] from joe.type_complex01; -- 查询指定key,value select name,map_keys(children)[0],map_values(children)[0] from joe.type_complex01; ---- Struct中数据查询 -- "点"语法查询struct中属性 select name,address.street from joe.type_complex01;

 

标签:map,建表,string,--,type,data,joe,complex01
From: https://www.cnblogs.com/panda4671/p/17728673.html

相关文章

  • HashMap 的长度为什么是 2 的 N 次方?HashMap 与 ConcurrentHashMap 的异同
    一、HashMap的长度为什么是2的N次方为了能让HashMap存数据和取数据的效率高,尽可能地减少hash值碰撞,也就是说尽量把数据能平均分配,每个链表或者红黑树长度尽量相等。取余(%)操作中,如果除数是2的幂次,则等价于与其除数减一的与(&)操作。即:hash%length==hash&(length-1),这个等式成......
  • lambda HashMap 排序
    目录TreeMaplambdacomparingByKey示例代码TreeMap按key排序生成map可以有TreeMap完成,TreeMap可以按key的自然顺序排序(Comparable实现)lambdacomparingByKey使用lambda也可以很方便的对map排序Map.Entry.comparingByKey()按key排序的ComparatorMap.Entry.comparingBy......
  • semaphore互斥失败导致出core
    先看堆栈(gdb)bt#0bnet_neigh_event_thread(dummy=dummy@entry=0x0)at/vob/jenkins/workspace/_build_8.8.3/sdk/src/customer_smm/l3.c:1303#10x0000000002172cb0inthread_boot(ti_void=0x1c99dc10)at/vob_yukon/xzhou_streams/smm_88x/sdk/src/sal/core/unix......
  • HashMap源码解析
    HashMap简介HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键,但最多只允许一条记录的键为null。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。其内部通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长。HashMap是......
  • Map类初识
    我们在前面的文章中已经简短的介绍了下Map,作为开始,我们再更深的了解一下,此接口主要有四个常用的实现类,分别是HashMap、Hashtable、LinkedHashMap和TreeMap,类继承关系如下图所示:下面针对各个实现类的特点做一些说明:(1)HashMap:它根据键的hashCode值存储数据,大多数情况下可以直接定位......
  • HashMap的实现原理
    HashMap的数据结构:底层使用hash表数据结构,即数组和链表或红黑树当我们往HashMap中put元素时,利用key的hashCode重新hash计算出当前对象元素在数组中的下标存储时,如果出现hash值相同的key,此时有两种情况如果key相同,则覆盖原始值如果key不同(出现冲突),则将当前的key-value放入链......
  • 入门篇-其之四-字符串String的简单使用
    什么是字符串?在Java编程语言中,字符串用于表示文本数据。字符串(String)属于引用数据类型,根据String的源码,其头部使用class进行修饰,属于类,即引用数据类型。字符串的表示字符串使用双引号""表示,在双引号中你可以写任意字符。和前面定义并初始化基本数据类型的变量一样,定义最简单......
  • String vs &str in Rust
    Mostlikely,soonafteryou’vestartedyourRustjourney,youranintothisscenariowhereyoutriedtoworkwithstringtypes(orshouldIsay,youthoughtyouwere?),andthecompilerrefusedtocompileyourcodebecauseofsomethingthatlookslikeas......
  • [WPF] 随笔1:MVVM在ViewModel更新Image控件的BitmapImage值时报:必须在与 DependencyObj
    MVVM在ViewModel更新Image控件的BitmapImage值时报:必须在与DependencyObject相同的线程上创建DependencySource原因:必须在UI线程创建BitmapImage=>链接解决方案:使用MemoryStream加载图片,并在UI线程转换成BitmapImage=>链接接下来是我的写法Tip:我用的是MVVMLightViewM......
  • HashMap常见面试题
    简介HashMap最早出现在JDK1.2中,底层基于散列算法实现。HashMap允许null键和null值,是非线程安全类,在多线程环境下可能会存在问题。1.8版本的HashMap数据结构:为什么有的是链表有的是红黑树?默认链表长度大于8时转为树结构Node是HhaspMap中的一个静态内部类://Node是单向链表,实现......