2019独角兽企业重金招聘Python工程师标准>>>

1.问题描述

hive UDF 
格式:oc号1_an号1_次数;oc号2_an号2_次数
转换结果: oc号1 an号1 次数
                  oc号2 an号2 次数

一行转多行,一行转多列

2.实现思路

第一步分割:split('oc号1_an号1_次数;oc号2_an号2_次数',';') 结果Array<String> oc_an = [oc号1_an号1_次数,oc号2_an号2_次数]
第二步拆分:explode(oc_an)  (参考文档:A) 结果:
第三分割:split('oc号1_an号1_次数,'_')
第四步: 一行转多列? 简单用split分割,不过也可以写UDTF行数转换

3.实现案例

select ip, split(OC_AN ,'_')[0] as oc,split(OC_AN ,'_')[1] as an,split(OC_AN ,'_')[2] as click from longyuan_pps_base_hour LATERAL VIEW explode(split('100_101_3\;101_102_5','\;')) adTable AS OC_AN where  pf=201  and p=11 and p1=114 and t=11 
and bs='action__logo_view_auto' and dt='20140213'

4.参考文档

A.https://cwiki.apache.org/confluence/display/Hive/LanguageManual+LateralView
B.http://dacoolbaby.iteye.com/blog/1932077 福音

转载于:https://my.oschina.net/guoenzhou/blog/389685

HIVE 一行转多行输出办法相关推荐

  1. Hadoop3集群搭建之——hive添加自定义函数UDTF (一行输入,多行输出)

    上篇: Hadoop3集群搭建之--虚拟机安装 Hadoop3集群搭建之--安装hadoop,配置环境 Hadoop3集群搭建之--配置ntp服务 Hadoop3集群搭建之--hive安装 Hadoo ...

  2. 实现计算体积关键算法。根据输入的半径值,计算球的体积。输入数据有多组,每组占一行,每行包括一个实数,表示球的半径。输出对应球的体积,对于每组输入数据,输出一行,计算结果保留三位小数。

    实现计算体积关键算法.根据输入的半径值,计算球的体积.输入数据有多组,每组占一行,每行包括一个实数,表示球的半径.输出对应球的体积,对于每组输入数据,输出一行,计算结果保留三位小数. 注:PI = 3 ...

  3. hive的lateral view行转列

    1.hive中的行转列最常用的就是lateral view的语法,例如: select id,vcol from t lateral view explode(col) vtable as vcol ...

  4. python每行输出8个式子_多图+代码 | 详解Python操作Excel神器openpyxl的各种操作!

    前言 大家好,在之前的十几篇办公自动化系列文章中,我们大多是以真实的案例需求来讲解Python如何进行自动化办公操作,并且多次使用到openpyxl来处理表格,今天我们就来详细的盘点Python操作E ...

  5. git定位追踪一行或若干行代码修改历史记录

                                                             git定位追踪一行或若干行代码修改历史记录 先使用git blame追踪溯源这些行代码 ...

  6. 汇编语言作业 编程,将DATAS段中的每个单词的前4个字母改为大写并将改写后的结果分4行输出到屏幕上。

    [题目描述] 编程,将DATAS段中的每个单词的前4个字母改为大写并将改写后的结果分4行输出到屏幕上. DATAS SEGMENT db '1. display $'db '2. brows $'db ...

  7. 汇编语言编程,将DATAS段中的每个单词的前4个字母改为大写并将改写后的结果分4行输出到屏幕上

    编程,将DATAS段中的每个单词的前4个字母改为大写并将改写后的结果分4行输出到屏幕上 题目: 编程,将DATAS段中的每个单词的前4个字母改为大写并将改写后的结果分4行输出到屏幕上. DATAS S ...

  8. python输出斐波那契数列前20项、每输出5个数换行_按要求编写程序:输出斐波那契数列的前20项,每行输出5项....

    用循环语句编写一程序,要求输出下列图形 static void Main(string[] args)        {&nbsp 用C语言编写程序:键盘输入a和b两个整数,要求用函数求两个数 ...

  9. vs2022 C#使用Console.WriteLine调试没有命令行输出

    问题: visual studio 2022 的debug模式下,Console.WriteLine调试没有命令行输出应该打印出来的信息. 解决办法: 这个问题的原因是VS2017开始已经不再使用Ho ...

最新文章

  1. The Maximum Unreachable Node Set
  2. FreeRTOS 中断优先级嵌套错误引发HardFault异常解决
  3. 一文读懂什么是C++移动语义《一》
  4. SSIS数据转换组件_复制转换、数据转换、行计数
  5. python去重复元素_python 去除单个list中的重复元素
  6. 花书+吴恩达深度学习(十七)序列模型之长短期记忆 LSTM 和门控循环单元 GRU
  7. 将coco数据集转为voc格式代码
  8. ACL2021 | 跨视觉语言模态任务与方法
  9. C# 翻页设计:首页,上一页,下一页,末页 ,跳转
  10. 【4】基于深度神经网络的脑电睡眠分期方法研究(训练模型)
  11. Hbuilder无法正常运行微信小程序模拟器到指定页面为启动页
  12. java里VO是什么?
  13. No content to map to Object due to end of input
  14. 验证离散数学中的关系的相关性质(自反性,对称性,反自反性,发对称性,传递性)通过关系矩阵的方法
  15. Objective-C学习笔记(二)——OC基本语法概述
  16. 【C++】atomic简介
  17. 智齿客服H5聊天链接接入及WebView不支持input file文件上传解决
  18. edge bing搜索响应缓慢
  19. 【AR】AR 的几种底层实现方式
  20. 手机APP如何远程控制PLC

热门文章

  1. matlab中将数据保存为txt文件_matlab中将数据输出保存为txt格式文件的方法 (1)
  2. WWW软件全球使用排名
  3. arm-linux 交叉编译 mp4v2
  4. C++小型公司管理系统
  5. C语言实现单链表(带头结点)的基本操作(创建,头插法,尾插法,删除结点,打印链表)
  6. 1002. 写出这个数 (20)
  7. 【金三银四】微软java后端社招
  8. Mycat和Mysql搭建高可用企业数据库集群
  9. Redis面试复习大纲在手面试不慌,内含福利
  10. java停车场管理系统程序设计代码_社区养老服务管理系统,java程序设计