Как преобразовать сжатые файлы без заголовков, разделенные по конвейеру, файлы, хранящиеся в S3, в паркет с помощью AWS Glue - PullRequest
0 голосов
/ 17 мая 2019

В настоящее время у меня есть несколько тысяч сжатых GZIP-файлов без заголовка в формате S3 в S3, общим объемом ~ 10 ТБ, с той же схемой.Как лучше всего в AWS Glue (1) добавить файл заголовка, (2) преобразовать в формат паркета, разбитый по неделям, с помощью поля «date» в файлах, (3) добавить файлы в GlueКаталог данных для доступности для запросов в AWS Athena?

1 Ответ

0 голосов
/ 18 мая 2019

1) Создайте таблицу athena, указывающую ваши данные на S3:

Создайте внешнюю таблицу на athena

2) Создайте динамический фрейм из каталога клея, используятаблица, созданная на шаге выше.

from awsglue.context import GlueContext
glueContext = GlueContext(SparkContext.getOrCreate())
DyF = glueContext.create_dynamic_frame.from_catalog(database="{{database}}", table_name="{{table_name}}")

3) Запишите данные в новое местоположение S3 в любом формате, который вам нравится:

glueContext.write_dynamic_frame.from_options(
   frame = DyF,
   connection_type = "s3",
   connection_options = {"path": "path to new s3 location"},
   format = "parquet")

4) Создайте таблицу athena, указывающую на ваш паркетданные на S3:

Создание внешней таблицы для athena

Примечание. Вместо создания таблицы athena вручную, вы также можете использовать сканер клея для ее создания.Однако это повлечет за собой определенные расходы.

...