ОК, так что я бьюсь головой об Apache Beam уже несколько недель. Я учусь, но продолжаю застрять на том, что кажется таким тривиальным. У меня есть около 60 миллионов строк данных в двух отдельных файлах CSV. Строки состоят из целых и чисел с плавающей точкой. Я задам свой вопрос, но я думаю, что это помогает, если я предоставлю контекст того, как это является частью более крупного процесса, который я объясню позже.
Каждая строка в моей PCollection выглядит следующим образом:
11139422, 11139421, 11139487, 11139449, 11139477, 27500, 60,75, 60,75, 60,75
Сначала я конвертирую его так:
«11139422», «11139421», «11139487», «11139449», «11139477», «27500», «60 .75», «60 .75», «60 .75»
Затем я хочу создать и превратить каждое из значений в пару кортежей, чтобы можно было добавлять значения. Например, я хотел бы, чтобы это выглядело так для каждой строки в PCollection:
(p1, 11139422), (p2, 11139421), (p3, 11139487), (p4, 11139449), (p5, 11139477), (sal, 27500), (fp, 60.75), (bp, 60.75), (pp , 60,75)
Если я понимаю, как эффективно выполнять обработку parellel, я ДУМАЮ, что я должен превратить каждую строку в словарь с хэшированным ключом некоторого типа: some_hashed_key: (коллекция значений tupledtag сверху). Я еще не сделал никакой работы над своим следующим шагом, потому что в данный момент я застрял здесь. Мой следующий шаг заключается в том, чтобы в основном выполнить картезирование между двумя PCollections. Оба будут отформатированы почти так же, как указано выше. Мой план состоит в том, чтобы транслировать каждый словарный ключ из левой PCollection в каждую словарную клавишу в правой PCollection, добавлять некоторые значения вместе между PCollections, а затем объединять их все в одну PCollection и отправлять в очередь Pub / Sub. Опять же, я просто предоставляю контекст, не прося никого писать этот код для меня, спасибо!