详情页标题前

阿里云云原生大数据计算服务 MaxComputeLateral View-云淘科技

详情页1

MaxCompute支持通过Lateral View与UDTF生成函数)结合,将单数据拆成多行数据。本文为您介绍如何使用Lateral View拆分行数据,并执行聚合操作。

功能介绍

直接在select语句中使用UDTF会存在限制,为解决此问题,您可以通过MaxCompute的Lateral View与UDTF结合使用,将一行数据拆成多行数据,并对拆分后的数据进行聚合。

当您定义的UDTF不输出任何一行时,对应的输入行在Lateral View结果中依然保留,且所有UDTF输出为NULL。

命令格式

lateralView: lateral view [outer] ()  as  (',' ) 
fromClause: from  (lateralView) [(lateralView) ...]
  • udtf_name:必填。将一行数据拆成多行数据的UDTF,请参见其他函数。
  • expression:必填。待拆分行数据所属列名。
  • table_alias:必填。UDTF结果集的别名。
  • columnAlias:必填。拆分后得到的列的别名。
  • baseTable:必填。数据源表。


    说明

    from后可以有多个Lateral View语句,后面的Lateral View语句能够引用它前面的所有表和列名,实现对不同列的行数据进行拆分。

示例数据

假设已有一张表pageAds,它有三列数据,第一列是pageid string,第二列是col1 array,第三列是col2 array,详细数据如下。

pageid col1 col2
front_page [1, 2, 3] [“a”, “b”, “c”]
contact_page [3, 4, 5] [“d”, “e”, “f”]

使用示例

  • 单个Lateral View语句
    • 示例1:拆分col1。命令示例如下:
      select pageid, col1_new, col2 from pageAds lateral view explode(col1) adTable as col1_new;

      返回结果如下:

      +------------+------------+------------+
      | pageid     | col1_new   | col2       |
      +------------+------------+------------+
      | front_page | 1          | ["a","b","c"] |
      | front_page | 2          | ["a","b","c"] |
      | front_page | 3          | ["a","b","c"] |
      | contact_page | 3          | ["d","e","f"] |
      | contact_page | 4          | ["d","e","f"] |
      | contact_page | 5          | ["d","e","f"] |
      +------------+------------+------------+
    • 示例2:拆分col1并执行聚合统计。命令示例如下:
      select col1_new, count(1) as count from pageAds lateral view explode(col1) adTable as col1_new group by col1_new;

      返回结果如下:

      +------------+------------+
      | col1_new   | count      |
      +------------+------------+
      | 1          | 1          |
      | 2          | 1          |
      | 3          | 2          |
      | 4          | 1          |
      | 5          | 1          |
      +------------+------------+
  • 多个Lateral View语句
    拆分col1和col2。命令示例如下:

    select pageid,mycol1, mycol2 from pageAds 
        lateral view explode(col1) myTable1 as mycol1 
        lateral view explode(col2) myTable2 as mycol2;

    返回结果如下:

    +------------+------------+------------+
    | pageid     | mycol1     | mycol2     |
    +------------+------------+------------+
    | front_page | 1          | a          |
    | front_page | 1          | b          |
    | front_page | 1          | c          |
    | front_page | 2          | a          |
    | front_page | 2          | b          |
    | front_page | 2          | c          |
    | front_page | 3          | a          |
    | front_page | 3          | b          |
    | front_page | 3          | c          |
    | contact_page | 3          | d          |
    | contact_page | 3          | e          |
    | contact_page | 3          | f          |
    | contact_page | 4          | d          |
    | contact_page | 4          | e          |
    | contact_page | 4          | f          |
    | contact_page | 5          | d          |
    | contact_page | 5          | e          |
    | contact_page | 5          | f          |
    +------------+------------+------------+

相关参考

在实际业务开发过程中,如果您遇到行转列或列转行需求,除了可以借鉴上述Lateral View方法外,还可以参见行转列及列转行最佳实践。

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家

阿里云企业补贴进行中: 马上申请

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心。

购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠

转转请注明出处:https://www.yunxiaoer.com/160281.html

(0)
上一篇 2023年12月10日
下一篇 2023年12月10日
详情页2

相关推荐

  • 阿里云日志服务SLS常见问题-云淘科技

    本文介绍定时SQL功能的常见问题。 如何保证SQL分析的数据准确性? 数据延迟写入或实例的调度配置不恰当时,可能发生数据分析不准确问题。 数据写入存在延迟。例如数据写入日志服务延迟了5分钟,实例执行时间为12:03:00,SQL时间窗口为相对一分钟,即[12:02:00,12:03:00),则查询不到最新的数据。 数据写入日志服务到能够被查询到,这期间存在延…

    阿里云日志服务SLS 2023年12月10日
  • 阿里云云原生大数据计算服务 MaxComputePIVOT、UNPIVOT-云淘科技

    MaxCompute支持PIVOT和UNPIVOT关键字,通过PIVOT关键字可以基于聚合将一个或者多个指定值的行转换为列;通过UNPIVOT关键字可以将一个或者多个列转换为行。本文为您介绍PIVOT和UNPIVOT关键字的使用和示例。 PIVOT关键字 PIVOT关键字对于指定的每一组行值,都会生成对应的列。PIVOT关键字是FROM子句的一部分,可以和J…

  • 阿里云云原生大数据计算服务 MaxCompute数据质量衡量-云淘科技

    在了解保障基于MaxCompute的数据仓库数据质量的方案后,您还需要进一步学习如何制定一套标准度量方案,以及判断质量监控方案是否合适业务需求以及如何改进。 例如,针对每一个数据质量事件,必须分析原因和处理过程,制定后续同类事件预防方案。将严重的数据质量事件升级为故障,并对故障进行定义、等级划分、处理和总结。 相关工具链接 DataWorks数据质量管理工具…

  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云大数据开发治理平台 DataWorks实时同步常见问题-云淘科技

    本文为您介绍实时同步的相关问题。 文档概述 问题分类 相关文档 实时同步任务配置须知 实时同步任务支持哪些数据源? 为什么实时同步任务延迟较大? 实时同步任务延迟解决方案 实时同步任务为什么不建议使用公网? 实时同步字段格式问题 实时同步数据时,如何处理TRUNCATE? 如何提高实时同步的速度和性能? 实时同步是否支持在界面运行? 实时同步MySQL数据源…

    2023年12月10日
  • 阿里云日志服务SLSPutLogs-云淘科技

    调用PutLogs接口向指定的Logstore中写入日志数据。 接口说明 服务端会对每次PutLogs写入的日志数据做格式检查,只要日志数据中有任何一条日志不符合规范,则整个请求失败且无任何日志数据成功写入。 目前仅支持写入PB格式的日志数据,日志数据以LogGroup的形式展示。 日志数据写入时有两种模式: 负载均衡模式(LoadBalance):自动根据…

    阿里云日志服务SLS 2023年12月10日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。