Полевой раздел Apache Beam

Я хотел бы разделить коллекцию PCollection в Apache Beam с помощью Python по определенному полю.

Я нашел следующий код в документации Python SDK, который разбивает коллекцию PCollection на

students = ...
def partition_fn(student, num_partitions):
  return int(get_percentile(student) * num_partitions / 100)

by_decile = students | beam.Partition(partition_fn, 10)

Но это не то, что я хочу делать. Есть ли способ сделать это?


person Manuel Valero    schedule 30.11.2017    source источник


Ответы (1)


"Разделение" - это не то преобразование, которое вам нужно.

Вам нужно использовать GroupByKey?

Обратите внимание, что для правильной работы вы должны убедиться, что обрабатываемый элемент должен быть парным. В такой паре первый элемент всегда считается ключом, который будет использоваться для преобразования GroupByKey.

Никаких дополнительных параметров вам не нужно.

В моем случае у меня были такие кортежи, как

(key, < list of dictionaries >)
person lordcenzin    schedule 23.08.2018