1、列转行

  1.1 相关函数的说明:

    concat(string1,string,...)  //连接括号内字符串,数量不限。

    concat_ws(separator,string1,string2,...)  //连接括号内字符串,数量不限,连接符为separator。

    collect_set(col)  //此函数只接受基本类型,主要是将字段的值进行去重汇总,产生array类型字段。

  1.2 例子:

  

   创建表:create table person_info(

        name string,

        constellation string,

        blood_type string

       )row format delimited fields terminated by '\t';

   上传数据:

    load data local inpath ‘/home/hdc/constellation.txt’ into table person_info;

   查询语句:

    select t.base,concat_ws('|',collect_set(t.name)) name

    from(

      select name,concat(costellation,',',blood_type) base

      from person_info

    )t

    group by t.base;

2、行转列

  2.1 相关函数:

    explode(col_name):将hive中的一列中复杂的array或者map分成多行

    lateral view:侧视图配合explode(或者其他的UDTF),一个语句生成把单行数据拆解成多行后的数据结果集。  //LATERAL VIEW explode(split(goods_id,','))goods相当于一个虚拟表

  2.2 例子:

  

  创建表:create table movie_info(

      name string,

      categroy array<string>

      )row format delimited fields terminated by '\t';

      collection items terminated by ',';

  上传数据:

    load data local inpath '/home/hdc/movie.txt' into table movie_info;

  查询语句:

    select name,category_type

    from movie_info lateral view explode(categroy) temp_table as category_type;

  解析:表movie_info与虚表temp_table进行笛卡尔乘积其中temp_table表中的字段为category_type

explode还有如下用法:

  select distinct(t2.videoid), t3.category
        from (
            select explode(relatedid) as videoid
            from (
                select *
                from video_orc
                order by views desc
                limit 50) t1
         )t2


-->

hive中的列转行和行转列的更多相关文章

  1. SQL列转行,行转列实现

    在工作中,大家可能会遇到一些SQL列转行.行转列的问题,恰好,我也遇到了,就在此记录一下.此处所用的是SQLServer2008R2. 行转列,列转行,都要预先知道要要处理多少数据,在此我就以三种方案 ...

  2. hive中array嵌套map以及行转列的使用

    1. 数据源信息 {"student": {"name":"king","age":11,"sex" ...

  3. Spark基于自定义聚合函数实现【列转行、行转列】

    一.分析 Spark提供了非常丰富的算子,可以实现大部分的逻辑处理,例如,要实现行转列,可以用hiveContext中支持的concat_ws(',', collect_set('字段'))实现.但是 ...

  4. oracle 逗号分割,列转行,行转列

    SQL代码 列转行 select REGEXP_SUBSTR(a.rolecode ,,l) rolecode from ( select 'a,aa,aaa' rolecode from dual ...

  5. SQL 列转行与行转列

    假设有张学生成绩表(tb)如下:Name Subject Result张三 语文 74张三 数学 83张三 物理 93李四 语文 74李四 数学 84李四 物理 94*/ -------------- ...

  6. sqlserver 行转列、字符串行转列、自动生产行转列脚本

    行转列,老生常谈的问题.这里总结一下网上的方法. 1.生成测试数据: CREATE TABLE human( name ), --姓名 norm ), --指标 score INT , --分数 gr ...

  7. 转:hive-列转行和行转列

    1. 假设我们在hive中有两张表,其中一张表是存用户基本信息,另一张表是存用户的地址信息等,表数据假设如下: user_basic_info: id name 1 a 2 b 3 c 4 d use ...

  8. pandas中获取数据框的行、列数

    获取数据框的行.列数 # 获取行数 df.shape[0] # 获取行数 len(df) # 获取列数 df.shape[1]

  9. MySQL 行转列 -》动态行转列 -》动态行转列带计算

    Pivot Table Using MySQL - A Complete Guide | WebDevZoomhttp://webdevzoom.com/pivot-table-using-mysql ...

随机推荐

  1. [CSP-S模拟测试]:题(DP)

    题目描述 由于出题人赶时间所以没办法编故事来作为背景.一开始有$n$个苹果,$m$个人依次来吃苹果,第$i$个人会尝试吃$u_i$或$v_i$号苹果,具体来说分三种情况.$\bullet 1.$两个苹 ...

  2. HBuilder打包app(vue项目)

    一.测试项目是否可以正确运行    指令:npm run dev 首先我们先建立一个vue的项目,本人用的是vue-cli随便建立的,然后运行项目 不必非得是像我这样的,这一步的目的只是测试一下咱们的 ...

  3. MatrixTraceTransform主要逻辑在transform方法中

    @Override public void transform(TransformInvocation transformInvocation) throws TransformException, ...

  4. spring管理的事务

    之前对spring的事务传播机制没有概念,花点时间去看了事务的源码,以及这些事务传播机制使用的文档,在此做一下简单的笔记 正文 下面说提到的共享事务的意思就是几个service共用同一个事务,如传播机 ...

  5. Latex数学公式中的矩阵

    目录 矩阵的括号形式 array环境 上三角矩阵 分块矩阵 行内矩阵 矩阵的括号形式 使用matrix.pmatrix.bmatrix.Bmatrix.vmatrix或者Vmatrix环境: $$ \ ...

  6. 1.安装TypeScrpit

    https://www.tslang.cn/index.html 1.vs安装 之前网上的查的安装方法是先安装nodejs,之后执行 npm install -g typescript 但是从官网的下 ...

  7. Git错误总结

    1.error: failed to push some refs to ‘git@github.com:XXXX/XXXX‘ hint: Updates were rejected because ...

  8. Spring中两种引入配置文件方式

    用过Spring的人都知道,我们一般把数据库的配置.日志的配置或者其他的通用配置放在单独的配置文件中,在和Spring整合时,一般通过以下两种方法引入: <context:property-pl ...

  9. Learn Python the hard way, ex40 字典,可爱的字典

    #!/usr/bin/python #coding:utf-8 cities ={'CA':'sf','MI':'dt','FL':'je'} #创建字典 cities['NY']='ny' #增加新 ...

  10. Xpath表达式的粗介绍

    关于在自动化中Xpath表达式的书写,其实我也只是刚刚入门,粗略的跟着网上的教程学了一下,这篇我就来分享总结一下我学习到的知识. 首先呢,我们先认识一下什么是Xpath.Xpath是XML路径语言,它 ...