Apache Beam не будет записывать файлы в локальную среду или Google Storage - PullRequest
0 голосов
/ 24 октября 2018

По какой-то причине Apache Beam не будет записывать файлы в мою локальную среду или в Google Storage.Моя цель - прочитать данные из Google PubSub и порционно записать их в Google Storage.Для этого у меня есть следующий код:

        pipeline.begin()
            .apply(PubsubIO.readStrings()
                    .fromSubscription("projects/PROJECT/subscriptions/SUBNAME"))
            .apply(ParDo.of(new UpperCaseAndPrint()))
            .apply(Window.into(FixedWindows.of(Duration.millis(1000))))
            .apply(TextIO.write().to("gs://BUCKETNAME/outputData")
                .withWindowedWrites()
                .withNumShards(1));

Функция ParDo распечатывает входящие сообщения и, кажется, поступают данные:

19806 [direct-runner-worker] INFO  app  - message-4
19807 [direct-runner-worker] INFO  app  - message-3
19808 [direct-runner-worker] INFO  app  - message-2
19809 [direct-runner-worker] INFO  app  - message-1

У любого естьИдея, почему файлы не будут созданы локально или в хранилище Google Storage?

1 Ответ

0 голосов
/ 25 октября 2018

Получается, что есть некоторые проблемы с DirectRunner и использованием TextIO при использовании PubsubIO.Проблема исчезает при использовании другого бегуна, такого как бегунок потока данных.

Я не могу решить локальную проблему, но я надеюсь, что это поможет следующему человеку, который столкнется с этой проблемой и найдет этот пост.

...