Hive:从一列的不同值中随机 select N 个值

Hive: randomly select N values from distinct values of one column

假设我有这样一个数据集

|-----------------|----------------|
|    ID           |     Values     |
|-----------------|----------------|
|     123         |     aaaa       |
|-----------------|----------------|
|    234          |    bbb         |
|-----------------|----------------|
|     123         |     ab3d       |
|-----------------|----------------|
|    264          |     34g3ff     |
|-----------------|----------------|
|     783         |     341g5h     |
|-----------------|----------------|
|    921          |     7jdfew     |
|-----------------|----------------|
|     264         |     53fj       |
|-----------------|----------------|

我想从不同的 ID 值中随机 select,比如 3 个值。一种可能是得到这样的 table

|-----------------|----------------|
|    ID           |     Values     |
|-----------------|----------------|
|     123         |     aaaa       |
|-----------------|----------------|
|     123         |     ab3d       |
|-----------------|----------------|
|     783         |     341g5h     |
|-----------------|----------------|
|    921          |     7jdfew     |
|-----------------|----------------|

我应该如何在 Hive 中执行此操作?

这是一个使用连接的选项 rand():

select id, values
from mytable t
inner join (select distinct id from mytable order by rand() limit 3) i on i.id = t.id

子查询随机选取3id,然后外层查询带上所有相关行。