Сортировка и ограничение в apache-beam / google-cloud-dataflow - PullRequest
0 голосов
/ 13 марта 2019

Давайте предположим, что у меня есть 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?

Спасибо!

1 Ответ

3 голосов
/ 13 марта 2019

Обновление:

BeamSQL [2] поддерживает "ORDER BY LIMIT", если вы хотите попробовать.


Если вы используете Java SDK, вы можете использовать встроенное преобразование TOP [1] для выполнения ORDER BY LIMIT. Преобразование TOP допускает как DESC, так и ASC.

Если вы используете SDK без TOP, вы всегда можете обратиться к реализации TOP, чтобы написать свой собственный.

1 https://github.com/apache/beam/blob/master/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/Top.java

2. https://beam.apache.org/documentation/dsls/sql/overview/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...