HIVE/SQL: 查询附加点击流数据

HIVE/SQL: Querying additive clickstream data

在我们产品的列表功能中,我们有数据存储显示在列表中的 ID 列表。在我们的一小部分数据(现已修复)中,结果列表中包含的 ID 以附加方式存储。请参阅下面的屏幕截图以了解更多我试图传达的内容。

Datetime            User              Action           Extra
5-20-2015 9:00AM     A                 list           ids: 1
5-20-2015 9:00AM     A                 list           ids: 1, 2   
5-20-2015 9:00AM     A                 list           ids: 1, 2, 3
5-20-2015 9:01AM     B                 list           ids: 5
5-20-2015 9:01AM     B                 list           ids: 5, 6
5-20-2015 9:01AM     B                 list           ids: 5, 6, 7

是否可以针对此类数据组织编写 HIVE 或 SQL 查询?我试图在子查询中查询 LENGTH(extra),然后提取 MAX(LENGTH(extra)) 数据,但我们一直无法让它工作。

处理这些数据的最佳方式是什么,以便我们只提取最终的 ID 列表?

row_number() window 函数可能就是您想要的(我经常用它来查询按日期排序的附加数据源):

select * from
(select *, 
 row_number() over (partition by user order by length(extra) desc) rn
 from yourtable
 ) a
 where rn = 1