Более быстрое время разработки с AWS Glue

AWS Glue выглядит многообещающе, но у меня проблемы со временем цикла разработки. Если я редактирую скрипты PySpark через консоль AWS, выполнение нескольких минут занимает даже минимальный набор тестовых данных. Это затрудняет быструю итерацию, если мне нужно подождать 3-5 минут, чтобы посмотреть, правильно ли я вызвал метод glueContext или понял конкретный DynamicFrame поведение.

Какие методы позволят мне выполнять итерации быстрее?

Я полагаю, что мог бы разработать код Spark локально и развернуть его в Glue в качестве среды выполнения. Но если мне нужно протестировать код с расширениями, специфичными для Glue, я застрял.

2 ответа

Решение

Для сценариев разработки и тестирования Glue имеет конечные точки разработки, которые можно использовать с ноутбуками, такими как Zeppelin, установленными либо на локальном компьютере, либо на экземпляре Amazon EC2 (другие варианты - "REPL Shell" и "PyCharm Professional").

Пожалуйста, не забудьте удалить конечную точку, когда закончите тестирование, поскольку вы платите за нее, даже если она простаивает.

Я храню код pyspark в отдельном файле класса и склеиваю код в другой файл. Мы используем клей только для чтения и записи данных. Мы делаем тестовую разработку с использованием pytest на локальной машине. Нет необходимости в конечной точке dev или zeppelin. После того, как все ошибки, связанные с синтаксической или бизнес-логикой, исправлены в pyspark, комплексное тестирование выполняется с помощью клея. Мы также написали сценарий оболочки, который загружает последний код в корзину S3, из которой выполняется задание склеивания.

Другие вопросы по тегам