Apache Beam Python читает .tgz и анализирует BigQuery - PullRequest
0 голосов
/ 13 декабря 2018

Например, у меня есть файлы .tgz.Он находится в облачном хранилище Google.Внутри .tgz есть серия |файлы с разделителями .txt.Например, один из 10 файлов может быть назван аналогично

. Я бы хотел использовать Apache Beam в Python SDK, чтобы при минимальном чтении .tgz и сопутствующих файлов .txt без необходимости сначала его распаковывать.Я хотел бы разобрать |содержимое с разделителями и отправка коллекции в BigQuery в предопределенном Dataset.Table.

Это то, что у меня есть.

import apache_beam as beam
from apache_beam import (coders, io)

raw_logs = (p
            | io.Read("ReadLogsFromGCS", beam.io.TextFileSource(
                      "gs://my-bucket/logs-*.gz",
                      coder=coders.BytesCoder()))
p.run()

1 Ответ

0 голосов
/ 14 декабря 2018

Я боюсь, что луч не поддерживает tgz / tar.gz, т.е. файл с двойной архивацией в данный момент.Для этой функции есть открытый JIRA .Тем не менее, он может прочитать файл gz, который имеет один файл только внутри.Пример кода ниже:

beam.io.textio.ReadFromText(file_pattern= 'gs://bucket_name/logs-*.gz',compression_type='gzip')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...