【问题标题】:ordering string before concatenation in hive在 hive 中连接之前排序字符串
【发布时间】:2016-06-03 04:24:54
【问题描述】:

我们在一个表中有 3 列。 ID、时间戳和 cmets。一个 ID 可以关联多个 cmets。我们需要根据时间戳以 desc 格式选取前三个 cmets,这是我们使用 Rank() 函数完成的。下一个要求是将这 3 个顶部 cmets 与具有管道分离的 ID 连接起来。我们使用 concat_ws 来实现这一点。但是,我们看到这些 cmets 没有与时间戳的 desc 顺序连接。它们随机连接。

有没有办法在不使用自定义 udf 的情况下将 desc 时间戳顺序的串联顺序相同?

【问题讨论】:

  • 能否请您发布您当前使用的查询?

标签: hive concat rank udf


【解决方案1】:

使用row_number() over (partition by id order by timestamp desc) 并为每个 id 的前三个 cmets 指定一个数字。然后根据您之前提供的 rno 编写查询以连接 cmets。

【讨论】:

    猜你喜欢
    • 2022-09-30
    • 2011-01-12
    • 1970-01-01
    • 2012-08-11
    • 2019-10-08
    • 2013-07-01
    • 1970-01-01
    • 2013-01-23
    • 1970-01-01
    相关资源
    最近更新 更多