str_to_map(字符串参数, 分隔符1, 分隔符2)

使用两个分隔符将文本拆分为键值对。

分隔符1将文本分成K-V对,分隔符2分割每个K-V对。对于分隔符1默认分隔符是 ',',对于分隔符2默认分隔符是 '='

例子:

1. 创建map字段

DROP TABLE IF EXISTS tmp.tmp_str_to_map;
CREATE TABLE IF NOT EXISTS tmp.tmp_str_to_map
(
ocolumn string comment '原始字段',
rcolumn map<string,string> comment 'map字段'
);

  

2. concat + str_to_map函数

用concat + & 取表字段拼接成map类型

insert overwrite table tmp.tmp_str_to_map
SELECT
concat('&crowd:', m0.id,'&clicker:',m0.dui_leader,'&sen:',m0.application_type) ocolumn,
str_to_map(concat('column1:', m0.id,'&column2:',m0.dui_leader,'&column3:',m0.application_type), '&', ':') rcolumn
FROM tmp.tmp_adhoc_detail_20180927 m0
limit 1
;

  

3. 取用map里的字段,用[""]即可

select
rcolumn,
rcolumn["column1"] column1
from tmp.tmp_str_to_map;

4. 也可以直接转换取用,而不需要存储字段

SELECT
m0.id column1,
str_to_map(concat('column1:', m0.id,'&column2:',m0.dui_leader,'&column3:',m0.application_type), '&', ':')["column1"] column1_1
from tmp.tmp_adhoc_detail_20180927 m0
limit 1

  

5. 结果:

rcolumn
column1
{"column1":"1","column2":"李某某","column3":"创新班"} 1

Hive:map字段存储和取用 ( str_to_map函数 )的更多相关文章

  1. Hive表种map字段的查询取用

    建表可以用 map<string,string> 查询时可以按照 aaa[bbb], aaa 是map字段名,bbb是其中的参数名,就可以取到这个参数的值了 当参数名bbb是string时 ...

  2. hivesql之str_to_map函数

    str_to_map(字符串参数, 分隔符1, 分隔符2) 使用两个分隔符将文本拆分为键值对. 分隔符1将文本分成K-V对,分隔符2分割每个K-V对.对于分隔符1默认分隔符是 ',',对于分隔符2默认 ...

  3. HIVE: Map Join Vs Common Join, and SMB

    HIVE  Map Join is nothing but the extended version of Hash Join of SQL Server - just extending Hash ...

  4. Hive压缩和存储(十二)

    压缩和存储 1. Hadoop压缩配置 1) MR支持的压缩编码 压缩格式 工具 算法 文件扩展名 是否可切分 DEFAULT 无 DEFAULT .deflate 否 Gzip gzip DEFAU ...

  5. hive中的lateral view 与 explode函数的使用

    hive中的lateral view 与 explode函数的使用 背景介绍: explode与lateral view在关系型数据库中本身是不该出现的. 因为他的出现本身就是在操作不满足第一范式的数 ...

  6. Hive的压缩存储和简单优化

    一.Hive的压缩和存储 1,MapReduce支持的压缩编码 压缩格式 工具 算法 文件扩展名 是否可切分 对应的编码/解码器 DEFLATE 无 DEFLATE .deflate 否 org.ap ...

  7. 用set、map等存储自定义结构体时容器内部判别各元素是否相同的注意事项

    STL作为通用模板极大地方便了C++使用者的编程,因为它可以存储任意数据类型的元素 如果我们想用set与map来存储自定义结构体时,如下 struct pp { double xx; double y ...

  8. STL之map与pair与unordered_map常用函数详解

    STL之map与pair与unordered_map常用函数详解 一.map的概述 map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称 ...

  9. Hive 表操作(HIVE的数据存储、数据库、表、分区、分桶)

    1.Hive的数据存储 Hive的数据存储基于Hadoop HDFS Hive没有专门的数据存储格式 存储结构主要包括:数据库.文件.表.试图 Hive默认可以直接加载文本文件(TextFile),还 ...

随机推荐

  1. wpf 圆角TextBox 样式

    <Style x:Key="RoundCornerTextStyle" TargetType="{x:Type TextBox}"> <Set ...

  2. Ex0203

    游戏 –     这些软件的开发者是怎么说服你(陌生人)成为他们的用户的?他们的目标都是盈利么?他们的目标都是赚取用户的现金么?还是别的? 朋友们都在玩,我在试玩的时候也觉得很不错:游戏基本上的目标都 ...

  3. [小程序]_ELVE_小程序开发(1)

    最近在自学小程序,但是网上大部分重点都放在了界面的设计上,涉及到后端的很少,博主索性写点博客总结一下. #0X01  node.js环境搭建 不同于其他教程,本系列先重点介绍服务器端,后续再介绍客户端 ...

  4. ecs

    第一章弹性计算服务ecs概述 1.什么是弹性计算服务ecs 2弹性计算服务ecs的特点 3.弹性计算服务ecs的应用场景 slb------ecs----ecs----------- rds      ...

  5. Java JVM里堆和栈的区别

    参考资料: 1.堆和栈的概念和区别 2.JVM虚拟机

  6. .Net 一开始就不应该搞 .Net Core

    .Net 一开始就不应该搞 .Net Core,  java 跨平台 是 java 选择的道路,  .Net 应该发挥 和 平台 紧密结合 的 优势 . 如 控件哥 所说,  微软 应该把  IIS  ...

  7. mybatis的逆向工程和中文注解

    由于MyBatis Generator自带了生成注释的功能,但是,是英文的而且生成的根本无法理解,所以可以通过,修改他的源码来实现生成中文的注释,具体方式有以下几种: 1) 自定义CommentGen ...

  8. spring boot项目中处理Schedule定时任务

    项目中,因为使用了第三方支付(支付宝和微信支付),支付完毕后,第三方支付平台一般会采用异步回调通知的方式,通知商户支付结果,然后商户根据通知内容,变更商户项目支付订单的状态.一般来说,为了防止商户项目 ...

  9. CSS 不规则图形绘制

    基础技能1 - 神奇的border 我们先来画一个长方形: .Rectangle { height: 100px; width: 200px; background: darkgray; border ...

  10. centos7虚拟机克隆后设置固定IP

    虚拟机centos7克隆一份出来之后,新centos7更改了固定IP,可是不生效.重启网卡时报错: network.service: control process exited, code=exit ...