Я заметил, что java apache beam имеет класс groupby.sortbytimestamp, на котором у python реализована эта функция? Если бы не было способа сортировки элементов в окне? Я полагаю, я мог бы сортировать все окно в DoFn, но я хотел бы знать, есть ли лучший способ.Как я могу упорядочить элементы в окне в python apache beam?
3
A
ответ
6
В настоящее время нет встроенной сортировки значений в Beam (на Python или Java). Прямо сейчас лучшим вариантом является сортировка значений самостоятельно в DoFn, как вы упомянули.
1
Вот решение, использующее CombineFn. Он имеет дополнительный бонус дедупликации данных с помощью TreeSet. Вы также должны убедиться, что ваши данные для окна достаточно малы, чтобы поместиться в памяти на одного работника.
public static class DedupAndSortByTime extends Combine.CombineFn<MarketData, TreeSet<MarketData>, List<MarketData>> {
@Override
public TreeSet<MarketData> createAccumulator() {
return new TreeSet<>(Comparator
.comparingLong(MarketData::getEventTime)
.thenComparing(MarketData::getOrderbookType));
}
@Override
public TreeSet<MarketData> addInput(TreeSet<MarketData> accum, MarketData input) {
accum.add(input);
return accum;
}
@Override
public TreeSet<MarketData> mergeAccumulators(Iterable<TreeSet<MarketData>> accums) {
TreeSet<MarketData> merged = createAccumulator();
for (TreeSet<MarketData> accum : accums) {
merged.addAll(accum);
}
return merged;
}
@Override
public List<MarketData> extractOutput(TreeSet<MarketData> accum) {
return Lists.newArrayList(accum.iterator());
}
}
Смежные вопросы
- 1. Открытие gzip-файла в python Apache Beam
- 2. Как я могу упорядочить элементы меню?
- 3. Использовать Apache Beam как зависимость
- 4. Как я могу упорядочить элементы поля многозадачности в алфавитном порядке?
- 5. Как я могу упорядочить элементы в таблице - просмотр MVC3 (Index.cshtml)
- 6. Python Apache Beam Pipeline Status API Call
- 7. Как упорядочить элементы в окне списка с помощью радиокнопки REPOST
- 8. Как упорядочить элементы в td?
- 9. Как я могу упорядочить словарь?
- 10. Как я могу упорядочить группы в WPF
- 11. Поддержка Azure Blob в Apache Beam?
- 12. Как упорядочить элементы управления
- 13. Как упорядочить элементы списка?
- 14. Как я могу упорядочить порядок элементов списка?
- 15. Как упорядочить список в python?
- 16. Как упорядочить элементы в сетке динамически
- 17. Упорядочить счетчик() в python?
- 18. Как упорядочить элементы в ToolStripControlHost, данные GoDiagram
- 19. Как упорядочить элементы в списке путем перетаскивания
- 20. Python: Как я могу прочитать элементы
- 21. Как я могу упорядочить порядок foreach (glob?
- 22. Как я могу упорядочить результаты фильтра запросов?
- 23. Как я могу сортировать элементы в очереди?
- 24. Как я могу упорядочить правила css?
- 25. Apache Beam get source Имя файла
- 26. Упорядочить элементы списка
- 27. Исключение Apache Beam при запуске примера wordcount
- 28. Упорядочить элементы в списке в центре
- 29. Упорядочить элементы управления в панели в ASP.NET
- 30. Как я могу вызвать ВСЕ элементы моего массива в python?
Где Вы находите этот класс? Я не думаю, что он существует больше: https://github.com/apache/beam/search?utf8=%E2%9C%93&q=sortbytimestamp&type= – skeller88