在 hive 中连接之前排序字符串
Posted
技术标签:
【中文标题】在 hive 中连接之前排序字符串【英文标题】:ordering string before concatenation in hive 【发布时间】:2016-06-03 04:24:54 【问题描述】:我们在一个表中有 3 列。 ID、时间戳和 cmets。一个 ID 可以关联多个 cmets。我们需要根据时间戳以 desc 格式选取前三个 cmets,这是我们使用 Rank() 函数完成的。下一个要求是将这 3 个顶部 cmets 与具有管道分离的 ID 连接起来。我们使用 concat_ws 来实现这一点。但是,我们看到这些 cmets 没有与时间戳的 desc 顺序连接。它们随机连接。
有没有办法在不使用自定义 udf 的情况下将 desc 时间戳顺序的串联顺序相同?
【问题讨论】:
能否请您发布您当前使用的查询? 【参考方案1】:使用row_number() over (partition by id order by timestamp desc)
并为每个 id 的前三个 cmets 指定一个数字。然后根据您之前提供的 rno 编写查询以连接 cmets。
【讨论】:
以上是关于在 hive 中连接之前排序字符串的主要内容,如果未能解决你的问题,请参考以下文章