排序并限制在 apache-beam/google-cloud-dataflow
Sort and limit in apache-beam/google-cloud-dataflow
假设我有以下格式的 PCollection:
-----------------------------------------
| sale_id | product_id | amount |
|-----------|---------------|-----------|
| 1 | a | 1 |
|-----------|---------------|-----------|
| 2 | b | 12 |
|-----------|---------------|-----------|
| 3 | c | 3 |
|-----------|---------------|-----------|
| 4 | d | 100 |
|-----------|---------------|-----------|
| 5 | e | 4 |
-----------------------------------------
我的目标是只过滤X条畅销书记录,即按金额排序,限制X
在 apache beam 中有什么方法可以实现?
谢谢!
更新:
BeamSQL[2] 支持 "ORDER BY LIMIT",如果你想尝试的话。
如果您正在使用 Java SDK,您可以使用内置的 TOP 转换[1] 来执行 ORDER BY LIMIT。 TOP 转换允许 DESC 和 ASC。
如果您使用的是没有TOP的SDK,您可以随时参考TOP的实现来编写自己的。
假设我有以下格式的 PCollection:
-----------------------------------------
| sale_id | product_id | amount |
|-----------|---------------|-----------|
| 1 | a | 1 |
|-----------|---------------|-----------|
| 2 | b | 12 |
|-----------|---------------|-----------|
| 3 | c | 3 |
|-----------|---------------|-----------|
| 4 | d | 100 |
|-----------|---------------|-----------|
| 5 | e | 4 |
-----------------------------------------
我的目标是只过滤X条畅销书记录,即按金额排序,限制X
在 apache beam 中有什么方法可以实现?
谢谢!
更新:
BeamSQL[2] 支持 "ORDER BY LIMIT",如果你想尝试的话。
如果您正在使用 Java SDK,您可以使用内置的 TOP 转换[1] 来执行 ORDER BY LIMIT。 TOP 转换允许 DESC 和 ASC。
如果您使用的是没有TOP的SDK,您可以随时参考TOP的实现来编写自己的。