开发者社区 > 大数据与机器学习 > 大数据计算 MaxCompute > 正文

大数据计算MaxCompute odps的插入数据语句,有办法根据as后的字段自动匹配么?

大数据计算MaxCompute odps的插入数据语句,有办法根据as后的字段自动匹配么?不根据建表语句的字段顺序

建表语句字段 create table T ( a string, b string , c string)
插入数据 insert overwrite table T select 1 as c ,2 as b ,3 as a from xxx

希望结果是 a= 3 b=2 c =1
而不是建表字段顺序的 a =1 ,b = 2 ,c = 3

展开
收起
真的很搞笑 2023-12-10 15:16:15 66 0
2 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    在MaxCompute的ODPS中,可以使用lateral viewposexplode函数在MaxCompute的ODPS中,可以使用lateral viewposexplode函数来实现根据AS后的字段自动匹配。以下是一个示例:

    INSERT OVERWRITE TABLE T
    SELECT c, b, a
    FROM (
        SELECT 1 AS c, 2 AS b, 3 AS a
        FROM xxx
    ) t
    LATERAL VIEW posexplode(map_from_arrays(t.c, t.b, t.a)) t_map AS c, b, a;
    

    这个查询首先使用lateral viewposexplode函数将数组中的每个元素拆分为多行,然后使用map_from_arrays函数将原始数据与拆分后的数据进行匹配。最后,将匹配后的数据插入到目标表中。

    2023-12-11 14:03:25
    赞同 展开评论 打赏
  • 测试了下,没办法用这个写法insert overwrite table T select 1 as c ,2 as b ,3 as a from xxx;是按照字段顺序写入的。9a9eef9480f63f0fae8332a86df4adff.png
    如果可以调子查询中的顺序,能写进去3941fca6304fd06e7568463ba68ce422.png
    ,此回答整理自钉群“MaxCompute开发者社区2群”

    2023-12-11 12:19:06
    赞同 展开评论 打赏

MaxCompute(原ODPS)是一项面向分析的大数据计算服务,它以Serverless架构提供快速、全托管的在线数据仓库服务,消除传统数据平台在资源扩展性和弹性方面的限制,最小化用户运维投入,使您经济并高效的分析处理海量数据。

相关产品

  • 云原生大数据计算服务 MaxCompute
  • 热门讨论

    热门文章

    相关电子书

    更多
    Data+AI时代大数据平台应该如何建设 立即下载
    大数据AI一体化的解读 立即下载
    极氪大数据 Serverless 应用实践 立即下载