MaxCompute单字段拆分多行多列

本文涉及的产品
轻量应用服务器 2vCPU 1GiB,适用于搭建电商独立站
轻量应用服务器 2vCPU 4GiB,适用于网站搭建
轻量应用服务器 2vCPU 4GiB,适用于搭建Web应用/小程序
简介: 数据导入MaxCompute后,需要把某个字段String类型(多键值(key-value )对 ) 拆分成多行,每行有都有key, value两列。比如“{k1:v1,k2:v2,k3:k4}” 拆成多行,每行两个值key,value 分别为k1,v1;k2,v2;k3;k4。

解决场景

数据导入MaxCompute后,需要把某个字段String类型(多键值(key-value )对 ) 拆分成多行,每行有都有key, value两列。

原数据:

  • 比如uid (1234), region(cn-hz), tags, 其中tags值为“{k1:v1,k2:v2,k3:k4}”
    image.png

期望处理结果:

转换成uid ,region,key,value
image.png

详细方案

  1. 准备表
  2. 插入数据
  3. 处理数据,查询处理结果

注意

  • 边界情况
  • tags带特殊字符(,:等)需要自行测试
# 表结构

create table if not exists t1(
    region string,
    uid int,
    tags string
)partitioned by (ds string) lifecycle 1;


# 插入数据 ${dstime} 是变量,给定某天的值

insert overwrite table t1 partition (ds='${dstime}')
select "cn-hz" as region,1234 as uid,"{k1:v1,k2:v2,k3:k4}" as tags ;


# 结果拆分,这里考虑到如果tags的key包含“,” 或者 “:” 则可能需要对于数据做一些转义处理,
# 下面例子是假设tags不包含“,” 或者 “:” 
# TRANS_ARRAY 
# 2 表示不变化的字段的个数, 
# “,”表示分割tags的分割符, 
# uid,region是不变化的字段,
# SUBSTR(tags,2,LENGTH(tags)-2) 处理前后{}后的字段,如果后面的k1有引号需要注意引号的处理

SELECT  uid, region, SPLIT_PART(tags, ":", 1)  as key , SPLIT_PART(tags, ":", 2)  as value FROM (
SELECT  TRANS_ARRAY(
            2 
            ,","
            ,uid
            ,region
            ,SUBSTR(tags,2,LENGTH(tags)-2)
        ) AS (uid,region,tags)
FROM    t1
WHERE   ds = "20201112"
)tmp
;

参考文档:

TRANS_ARRAY 相关使用说明

相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
|
分布式计算 DataWorks 关系型数据库
DataWorks支持将ODPS表拆分并回流到MySQL的多个库和表中
【2月更文挑战第14天】DataWorks支持将ODPS表拆分并回流到MySQL的多个库和表中
248 8
|
SQL 分布式计算 MaxCompute
MaxCompute SQL使用小技巧之多列转多行
上一篇分析了常用的行列转换,在这里补充一点使用posexplode函数进行多列转多行
1119 0
|
2月前
|
机器学习/深度学习 传感器 分布式计算
数据才是真救命的:聊聊如何用大数据提升灾难预警的精准度
数据才是真救命的:聊聊如何用大数据提升灾难预警的精准度
189 14
|
4月前
|
数据采集 分布式计算 DataWorks
ODPS在某公共数据项目上的实践
本项目基于公共数据定义及ODPS与DataWorks技术,构建一体化智能化数据平台,涵盖数据目录、归集、治理、共享与开放六大目标。通过十大子系统实现全流程管理,强化数据安全与流通,提升业务效率与决策能力,助力数字化改革。
166 4
|
3月前
|
机器学习/深度学习 运维 监控
运维不怕事多,就怕没数据——用大数据喂饱你的运维策略
运维不怕事多,就怕没数据——用大数据喂饱你的运维策略
151 0
|
4月前
|
分布式计算 DataWorks 数据处理
在数据浪潮中前行:记录一次我与ODPS的实践、思考与展望
本文详细介绍了在 AI 时代背景下,如何利用阿里云 ODPS 平台(尤其是 MaxCompute)进行分布式多模态数据处理的实践过程。内容涵盖技术架构解析、完整操作流程、实际部署步骤以及未来发展方向,同时结合 CSDN 博文深入探讨了多模态数据处理的技术挑战与创新路径,为企业提供高效、低成本的大规模数据处理方案。
297 3
|
4月前
|
SQL 人工智能 分布式计算
ODPS:数据浪潮中的成长与突围
本文讲述了作者在大数据浪潮中,通过引入阿里云ODPS体系(包括MaxCompute、DataWorks、Hologres)解决数据处理瓶颈、实现业务突破与个人成长的故事。从被海量数据困扰到构建“离线+实时”数据架构,ODPS不仅提升了数据处理效率,更推动了技术能力与业务影响力的双重跃迁。
|
2月前
|
传感器 人工智能 监控
数据下田,庄稼不“瞎种”——聊聊大数据如何帮农业提效
数据下田,庄稼不“瞎种”——聊聊大数据如何帮农业提效
141 14
|
1月前
|
传感器 人工智能 监控
拔俗多模态跨尺度大数据AI分析平台:让复杂数据“开口说话”的智能引擎
在数字化时代,多模态跨尺度大数据AI分析平台应运而生,打破数据孤岛,融合图像、文本、视频等多源信息,贯通微观与宏观尺度,实现智能诊断、预测与决策,广泛应用于医疗、制造、金融等领域,推动AI从“看懂”到“会思考”的跃迁。
|
2月前
|
机器学习/深度学习 传感器 监控
吃得安心靠数据?聊聊用大数据盯紧咱们的餐桌安全
吃得安心靠数据?聊聊用大数据盯紧咱们的餐桌安全
108 1

热门文章

最新文章

下一篇
oss云网关配置