Apache Beam: чтение в PCollection как PBegin для конвейера - PullRequest
0 голосов
/ 18 марта 2020

Я отлаживаю этот лучевой конвейер, и моя конечная цель - записать все строки в PCollection в текстовый файл.

Я установил точку останова в точке после желаемой PCollection. проверить, что создано, и я пытался создать новый конвейер, который

  1. читает в этом output PCollection в качестве исходного ввода
  2. Печатает его в файл (используя `TextIO.write (). to (" / Users / my / local / fp "))

Я борюсь с # 1 о том, как читать в PCollection в качестве начального ввода.

Скелет того, что я пробовал:

Pipeline p2 = Pipeline.create();
p2.apply(// READ IN THE PCOLLECTION HERE)
  .apply(TextIO.write().to("/Users/my/local/fp")));
p2.run()

Будем благодарны за любые мысли или предложения

1 Ответ

0 голосов
/ 18 марта 2020

Чтобы прочитать коллекцию на входе, вам нужно прочитать ее из источника. Т.е. некоторые данные хранятся в BigQuery, Google Cloud Storage и др. c. Есть определенные c исходные преобразования, которые вы можете использовать для чтения из каждого из этих мест. В зависимости от того, где вы сохранили свои данные, вам нужно будет использовать правильный источник и передать соответствующие параметры (например, путь GCS, таблица BigQuery)

Пожалуйста, посмотрите на пример минимального числа слов на сайте apache beam ( Полный исходный код на github ). Я предлагаю начинать с этого кода и повторять его до тех пор, пока вы не создадите нужный конвейер.

В этом примере файлы читаются из GCS

p.apply(TextIO.read().from("gs://apache-beam-samples/shakespeare/*"))

Пожалуйста, см. Также это руководство используя IOs, а также этот список преобразований луча IO . Если вы просто хотите, чтобы работал базовый пример c, вы можете использовать Create.of для чтения из переменных в вашей программе.

...