Добавить теги для каждого элемента в PCollection - PullRequest
0 голосов
/ 26 августа 2018

ОК, так что я бьюсь головой об 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. Опять же, я просто предоставляю контекст, не прося никого писать этот код для меня, спасибо!

1 Ответ

0 голосов
/ 26 августа 2018

Получил ооооооо повезло!Я нашел ответ здесь:

Как преобразовать CSV в словарь в потоке данных Apache Beam

Итак, никаких преобразований не требуется, это встроенная функция, которая добавляет ключ: пары значений автоматически при чтении. Надеюсь, кто-то споткнется об этом посте, и это сделает его день таким же, как мой!

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