2015-02-06 4 views
2

Я пытаюсь использовать поток данных Google Cloud для чтения данных из GCS и загрузки в таблицы BigQuery, однако файлы в GCS сжаты (gzip), есть ли какой-либо класс, который можно использовать для читать данные из сжатых/gzipped файлов?google cloud dataflow чтение данных из сжатых данных

спасибо!

ответ

6

Чтение из источников сжатого текста теперь поддерживается в потоке данных (с this commit). В частности, файлы, сжатые с помощью Gzip и bzip2 могут быть считаны с указанием типа сжатия:

TextIO.Read.from(myFileName).withCompressionType(TextIO.CompressionType.GZIP) 

Однако, если файл имеет .gz или расширение .bz2, вы не должны делать ничего делать: по умолчанию Тип сжатия - AUTO, в котором рассматриваются расширения файлов для определения правильного типа сжатия для файла. Это даже работает с globs, где файлы, которые являются результатом glob, могут быть комбинацией .gz, .bz2 и несжатыми.

+0

Отлично! Спасибо за обновление. как насчет производительности, любого воздействия на производительность при чтении из сжатых данных? – Echo

+0

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