【问题标题】:Failed to breakup Windowing invocations into Groups. At least 1 group must only depend on input columns. Also check for circular dependencies未能将窗口调用分解为组。至少 1 个组必须仅依赖于输入列。还要检查循环依赖
【发布时间】:2022-05-13 05:34:39
【问题描述】:

我正在尝试以后代的方式在更新日期之前订购一组值,但我遇到了这个奇怪的错误:

Failed to breakup Windowing invocations into Groups. At least 1 group must only depend on input columns. Also check for circular dependencies.

我不确定这是什么意思,我有一个类似的行,上面有相同的代码,它可以工作,不确定我是否不能有两次相同的分组代码。

  ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY update_timestamp) as id_update

我希望它按 user_id 对它收到的不同更新进行分区。

【问题讨论】:

    标签: hadoop hive


    【解决方案1】:

    发现问题,分组键必须是查询列表的一部分,也就是说update_timestamp必须是选择列表的一部分。

    选择 用户身份, update_timestamp, ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY update_timestamp) as id_update 从表a

    【讨论】:

    • 但是你的分组键不是user_id吗?
    【解决方案2】:

    如果您使用 LAG 函数并忘记将参数放入其中,也会出现此错误(因为您已经习惯了 ROW_NUMBER 没有参数)

    例如

    LAG() OVER (ORDER BY pos)

    【讨论】:

      猜你喜欢
      • 2021-04-22
      • 2019-08-02
      • 2010-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-14
      相关资源
      最近更新 更多