| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> odps列转行之trans_array/trans_cols -> 正文阅读 |
|
[大数据]odps列转行之trans_array/trans_cols |
trans_array用于将一行数据转为多行的UDTF,将列中存储的以固定分隔符格式分隔的数组转为多行。? 命令格式
参数说明● ?num_keys: bigint类型常量,必须>=0。在转为多行时作为转置key的列的个数。 Key是指在将一行转为多行时,在多行中重复的列。 ● ?separator:string类型常量,用于将字符串拆分成多个元素的分隔符。为空时报异常。 ● ?keys:转置时作为key的列, 个数由num_keys指定。如果num_keys指定所有的列都作为key(即num_keys等于所有列的 数),则只返回一行。 ● ?cols: 要转为行的数组,keys之后的所有列视为要转置的数组,必须为string类型,存储的内容是字符串格式的数组, “Hangzhou;Beijing;shanghai”,是以”;”分隔的数组。 返回: ? ? 转置后的行,新的列名由as指定。作为key的列类型保持不变,其余所有的列是string类型。拆分成的行数以个数多的数 为准,不足的补NULL。 使用限制? ? UDTF使用上有一些限制 ● ?所有作为key的列必须处在前面,而要转置的列必须放在后面。 ● ?在一个select中只能有一个udtf,不可以再出现其它的列 ● ?不可以与group by/cluster by/distribute by/sort by一起使用。 示例表中的数据如
则 trans_array(1, “,”, login_id, login_ip, login_time) as (login_id,login_ip,login_time) 产生的数据是
如果表中的数据是
则对数组中不足的数据补NULL
trans_cols用于将一行数据转为多行的UDTF,将不同的列转为行。? 命令格式
参数说明? ? num_keys: bigint类型常量,必须>=0。在转为多行时作为转置key的列的个数。 Key是指在将一行转为多行时,在多行中重复的列,如要将A,B,C,D转为 A,B,C A,B,D 则A,B列为key keys: 转置时作为key的列,由num_keys决定哪些列作为key。 cols: 要转为行的列,类型必须相同。 返回: ? ? 转置后新的列名由as指定。输出的第一列是转置的下标,下标从1开始。 作为key的列类型保持不变,其余所有的列与原来类型一致。如果num_keys指定所有的列都作为key(即num_keys等于所 列的个数),则只返回一行。 使用限制? ? UDTF使用上有一些限制 ● ?所有作为key的列必须处在前面,而要转置的列必须放在后面。 ● ?在一个select中只能有一个udtf,不可以再出现其它的列,如不可以写成 Select login_id, trans_cols(1, login_id, login_ip1, login_ip2) as(idx, login_id, login_ip) ● ?不可以与roup by/cluster by/distribute by/sort by一起使用。 示例表中的数据如
则 trans_cols(1, login_id, login_ip1, login_ip2) as (idx, login_id, login_ip) 的输出为:
如果对你有帮助,就请点个赞吧~ |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 14:29:21- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |