sparkSql的炸裂函数 explode

炸裂:将一行数据,炸裂为多行, 也就是“列转行”
例如:hive的订单表order_table有一个字段item_list,是一个列表结构的

array<struct<item_id:string,item_sku_id:string,price:double,quantity:bigint,title:string>>

item_list中有多个商品信息,每个商品信息是一个结构体,那么如何将一个order_id对应的商品列表,转化为多行?即炸裂为多行
使用explode()函数就可以实现

val order_item_df = spark.sql(s"select order_id, explode(item_list) as item_list from vc.order_basic_info where day='2020-12-17'").
        select("order_id", "item_list.item_id", "item_list.title").show(1000)

运行的结果如下:
在这里插入图片描述

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值