--上传测试数据
drop table test_map_1;
create table test_map_1 as
select 1 as uid, map("key1", "value1","key2", "value2") as map1 union all
select 2 as uid, map("key3", "value3","key4", "value4") as map1;--查看当前测试表结构是否是map<string,string>类型
hive> desc test_map_1;
col_name    data_type   comment
uid                     int
map1                    map<string,string> --查询具体数据
hive> select * from test_map_1;
OK
test_map_1.uid  test_map_1.map1
1   {"key1":"value1","key2":"value2"}
2   {"key3":"value3","key4":"value4"}
Time taken: 0.058 seconds, Fetched: 2 row(s)
--转换sql如下,并将结果放入临时表
drop table test_map_1_to_string;
create table test_map_1_to_string as
select uid,concat('{"', concat_ws(',', collect_list(concat_ws('":"', k,v) ) ), '"}') as string1
from test_map_1
lateral view outer explode(map1) kv as k,v
group by uid
;select * from test_map_1_to_string;--查看原数据类型map<string,string>转为string
hive> desc test_map_1_to_string;
OK
col_name    data_type   comment
uid                     int
string1                 string select * from test_map_1_to_string;
OK
test_map_1_to_string.uid    test_map_1_to_string.string1
1   {"key1":"value1,key2":"value2"}
2   {"key3":"value3,key4":"value4"}
Time taken: 0.066 seconds, Fetched: 2 row(s)
如果大括号不需要,可以去掉最外层concat()函数;
如果不需要双引号"",则可以将concat_ws('":"', k,v)改为concat_ws(':', k,v)

Hive中Map数据类型转String类型,其中具体内容不变相关推荐

  1. hive中的数据类型

    数据类型 1.Hive中的数据类型分为两类:基本类型和复杂类型 2.基本类型包含:tinyint,smallint,int,bigint,float,double,boolean,string,tim ...

  2. 关于hive中Map join 时大表left join小表的问题

    在hive中,(启用Map join时) 大表left join小表,加载从右向左,所以小表会加载进内存,存储成map键值对,通过大表驱动小表,来进行join,即大表中的join字段作为key 来获取 ...

  3. 下列( )类型不是mysql中的数据类型_下列( )类型不是MySQL中常用的的数据类型。_学小易找答案...

    [单选题]下面哪个坐标系不属于在椭球面上表示点位置的坐标系统. [简答题]2.根据形体的两面投影,补绘其第三面投影(尺寸可由图上直接量取). (1) (2) (3) (4) (5) (6) (7) ( ...

  4. Java课堂笔记引用数据类型之String类型

    背景:Java语言,字符串类型关键字String,是已经封装好的类. public static void main(String[] agrs) {// 字符串类型创建对象的两种定义方式,//Str ...

  5. java基础数据类型与String类型区别

    区别:Java内存存放位置不一样,基本数据类型存在栈(stack),String的对象实例存在堆(heap).另外String,不是基本数据类型,判断是否相等,不能使用==,而应该使用equals方法 ...

  6. python中map函数返回值类型_python map函数

    from:https://www.cnblogs.com/AlwaysWIN/p/6202320.html 描述 map() 会根据提供的函数对指定序列做映射. 第一个参数 function 以参数序 ...

  7. java基本数据类型转为String类型的4种常见方法

    1.toString 先把基本数据类型装箱,再用对象的toString()方法 2.String类的valueOf方法 这是一个静态方法,几乎可以把各种类型转换为字符串 String.valueOf( ...

  8. Java中基本数据类型和包装类型的区别

    1.包装类是对象,拥有方法和字段,对象的调用都是通过引用对象的地址:基本类型不是  2.包装类型是引用的传递:基本类型是值的传递  3.声明方式不同:                 基本数据类型不需 ...

  9. python中map函数返回值类型_Python函数精解:map函数

    描述 map() 会根据提供的函数对指定序列做映射. 第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表. 语法 m ...

最新文章

  1. 南京农业大学计算机保研率,2016中国大学保研率排名出炉 江苏11所高校入百强...
  2. C++ Primer 5th笔记(chap 11)关联容器---无序容器
  3. Mybatis3.4.x技术内幕(二十二):Mybatis一级、二级缓存原理分析
  4. iOS之深入解析WKWebView的WebKit源码调试与分析
  5. PDU (Protocol Data Unit) - 协议数据单元
  6. 借汉诺塔理解栈与递归
  7. webstrom中打包的详细_webpack打包体积优化
  8. Dockerfile文件中CMD指令与ENTRYPOINT指令的区别
  9. win2003(sp2 x86)+iis6+php-5.3.5-Win32 配置
  10. c语言代码re通常什么错误,求帮助 C语言realloc和free触发断点的问题
  11. 第八周 4.18 --- 4.24
  12. 腾讯手机管家(pc版) for android,腾讯手机管家PC版for Android小技巧分享
  13. burst tx 功能 开启_华硕路由器无线网络,专业设置各功能科普
  14. 关于C语言中有符号的整数值范围为什么是从-32768~32767以及有符号和无符号区别
  15. 51单片机学习笔记(8)——74HC573锁存器
  16. 本人博客目录 [实时更新]
  17. 思科实验-生成树协议STP
  18. sql语句中count(*),count(1),count(id)区别详解
  19. linux rar和zip工具
  20. 2021-03-17T23:47:55.978+08:00 UTC时间转换

热门文章

  1. qt 程序异常结束_【心电国际指南2009专家解读】浦介麟 冉玉琴老师:QT 间期的规范化测量及其意义...
  2. 选修课期末html作业,中南大学生命科学导论选修课期末作业
  3. java引言_Java C++(引言一)
  4. linux java占用199%,linux分区使用率过高又查询不到被哪些文件占用的问题
  5. 卷积神经网络(CNN)相关的基础知识
  6. geth+remix+metamask 实现私有链智能合约部署
  7. 响应式微服务 in java 译 十二 service discovery
  8. (https)nginx - tomcat(http)
  9. 首尔2017年公共区域全覆盖免费WiFi
  10. win10开移动热点让手机使用上网