split()函数是用于切分数据,也就是将一串字符串切割成了一个数组,标准格式为split(str,regex),支持正则切分不过有点奇怪的是,对于 “.”,"|“这样的特殊字符,不加”\“的时候是特殊字符,加了以后才是普通字符,而对于”\d"的字符,需要加"\“后才是特殊字符,就是是说”\\d"才是匹配数字。
假设我有一张表(demo)如下:

用split()函数对name字段切分

select split(name,',') as name,age from demo;

结果如下,返回值是一个array数组

explode()函数用于打散行的函数(将一行的数据拆分成多行,它的参数必须为map或array)。这个函数常和split()并用
如下

select explode(split(name,',')) as name from demo;

上述sql代码表示将name字段按“,”分割,再按得到的数组利用explode打散成多行

上面这各视图我们只能看到name列,如果我写成

  select explode(split(name,',')) as name,age from demo;

是不是就可以得到name,age两列了呢。
事实是hive不支持这样的操作

一个select后面只能获得一个explode产生的视图,如果要显示多个列,则需要将多个视图合并。
lateral view就是做这样的事的
如下(将name列打散,age列不打散)

select rename,age from demo lateral view explode(split(name,',')) demo as rename;
-- 命名成rename这样这句话好理解一点,不会和原来的name列搞混

结果如下

如果将name,age同时打散合并

select name,age from demo
lateral view explode(split(name,',')) demo as name
lateral view explode(split(age,',')) demo as age;

结果如下

我们可以看见,这时候两个later view合并实际上是做了一个全连接。如果要一一对应可能只能自己写函数了。

hive中split(),explode()和lateral row相关推荐

  1. Hive中的explode使用全解(附图片详解)

    数据表: 表名:default.class_info,分别是班级,姓名,成绩 3列 单列Explode: 需求:将student这一列中数据由一行变为多行(使用split和explode,并结合lat ...

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

    explode与lateral view在关系型数据库中本身是不该出现的,因为他的出现本身就是在操作不满足第一范式的数据(每个属性都不可再分), 本身已经违背了数据库的设计原理(不论是业务系统还是数据 ...

  3. hive中的lateral view的解析

    hive中的lateral view的解析 用json存储的概率比较大,直接导入hive为基础的数仓系统中,就需要经过ETL过程解析这类数据,explode与lateral view在这种场景下大显身 ...

  4. Hive中lateral view的应用到源码解读

    对于从事大数据开发的同学,经常会应用到explode(炸裂函数)和lateral view(侧输出流). Explode(炸裂函数) 参数必须是array或者map格式(通常跟split函数使用): ...

  5. explode与lateral view解析 hive

    工作中看代码时遇到lateral view explode(split(sni_type,','))  snTable as sni_info ,初看挺一脸懵逼的,细查之后才明白是对字段sni_typ ...

  6. hive中的 lateral view

    lateral view用于和split, explode等UDTF一起使用,它能够将一列数据拆成多行数据,在此基础上可以对拆分后的数据进行聚合. 一个简单的例子,假设我们有一张表pageAds,它有 ...

  7. hive中explode函数的用法

    hive中explode函数的用法 explode函数是一个炸裂函数他可以做一下转换 将这个表格 +--------------+-----------------------------+ | mo ...

  8. python列转行函数_Python pandas 列转行操作详解(类似hive中explode方法)

    最近在工作上用到Python的pandas库来处理excel文件,遇到列转行的问题.找了一番资料后成功了,记录一下. 1. 如果需要爆炸的只有一列: df=pd.DataFrame({'A':[1,2 ...

  9. hive中的分区表与视图

    Hive主要由用户接口模块.驱动模型以及元数据存储模块3个模块组成: 用户接口模块   用户接口模块包括CLI.Hive网页接口(Hive Web Interface,HWI).JDBC.ODBC.T ...

最新文章

  1. 0x58 数据结构优化DP
  2. jquery和JavaScript区别
  3. 台湾国立大学郭彦甫Matlab教程笔记(12) advanced 2D plot 下
  4. 给opentaps添加定制的表和字段
  5. Kendo UI Professional Q3 2015 Beta发布[附下载]
  6. linux7.2 静态IP设置,Centos 7 学习之静态IP设置
  7. eeprom stm8l 擦除 读写_[STM8L]EEPROM操作读与写
  8. 检验int值在list中是否存在_R语言统计与绘图:卡方检验
  9. 基于JAVA+SpringMVC+Mybatis+MYSQL的停车预约管理系统
  10. [洛谷P3242] [HNOI2015]接水果
  11. 51单片机产生1Hz-5kHz可调占空比方波
  12. 计算机操作系统pv操作讲解,计算机操作系统PV操作例题
  13. 5-1MongoDB 实验——数据备份和恢复--edu上面的nosql题目
  14. 恢复linux硬盘数据,Linux下的硬盘数据如何恢复?
  15. [dataTables使用的坑]requested unknown parameter 'XXX' for row xx, column xx
  16. 用Python从大到小排序
  17. 鸿蒙手机系统新桌面布局,鸿蒙系统是什么样的界面,详解华为鸿蒙系统
  18. 金融业信贷风控算法2-初等统计理论
  19. 机智云AIoT开发平台,物联网开发和运营从未如此简单
  20. 笔记本计算机半角数字切换,半角字符怎么输入?如何切换为-全角字符

热门文章

  1. 在cmd下用cd命令进不了D盘的问题
  2. 北京,总冠军,总冠军,总冠军!
  3. 留学留学条件forum.php,【俄罗斯留学条件】2021去俄罗斯留学条件
  4. ESP32学习笔记(39)——播放MP3文件(内部DAC方式)
  5. 当心!浏览网页也会中木马
  6. 上周热点回顾(3.21-3.27)
  7. 快播活该被抓,跟公诉人是谁无关
  8. Windows10 红警2 和室友联机
  9. Redis 设计与实现读书笔记-第三章
  10. myEclipse导出jar包,cmd执行项目中的main函数