У меня есть преобразование, которое выглядит следующим образом:
val partitionTransactions = transactions
.groupBy(GroupKeySelector()).reduceGroup(TransactionAggregator())
.combineGroup(PartitionTransactionsCreator())
Но независимо от параллелизма моей среды, я вижу, что PartitionTransactionsCreator
всегда видит только 2 раздела.Я пытался использовать rebalance
и partitionByHash
до combineGroup
, и я также пытался использовать mapPartition
вместо combineGroup
, но выходные данные всегда сгруппированы в 2 раздела, хотя TransactionAggregator
столько же.параллельные экземпляры как сконфигурированный параллелизм.
- Как Flink определяет, что входит в раздел, и почему я не могу его изменить?
- Есть ли разница между
mapPartition
иcombineGroup
когда последний используется на не сгруппированных DataSet
?