чтение CSV-файла из s3 с использованием искры - PullRequest
0 голосов
/ 26 апреля 2018

Я новичок в Spark. У меня есть сценарий, в котором мне нужно прочитать и обработать файл CSV из AWS s3. Этот файл создается ежедневно, поэтому мне нужно прочитать и обработать его, а также выгрузить данные в Postgres.

Я хочу обрабатывать этот огромный файл параллельно, чтобы сэкономить время и память.

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

  1. Используйте потоковую обработку искры, чтобы прочитать CSV из s3, обработать его и преобразовывать в JSON построчно и добавлять данные JSON в столбец JSONB Postgres.
  2. Используйте spring & java -> download file на сервере, затем начните обработку и конвертируйте его в JSON.

Может ли кто-нибудь помочь мне получить правильное направление?

1 Ответ

0 голосов
/ 26 апреля 2018

Если это ежедневно, и только 100 МБ, вам не нужно много для крупномасштабных инструментов. Я бы оценил <минуту для базовой загрузки и обработки, даже удаленно, после чего происходит загрузка postgres. Какие Postgres <a href="/2191488/kak-importirovat-dannye-faila-csv-v-tablitsu-postgresql"> предлагает

попробуйте сделать это локально, с aws s3 cp для копирования в вашу локальную систему, затем попробуйте с postgres.

Я бы не стал беспокоиться о параллельном инструменте; даже Spark захочет работать с блоками размером 32-64 МБ, поэтому вы получите не более 2-3 рабочих. И если файл .gz, вы получите ровно один.

Тем не менее, если вы хотите изучать искру, вы можете сделать это в искровой оболочке. Сначала загрузите локально, чтобы сэкономить время и деньги.

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