AWS Glue 2.0, локальная разработка pyspark, путаница в тестировании

#aws-glue

Вопрос:

Я новичок в клеевых заданиях и хочу попробовать использовать Glue 2.0 для запуска заданий PySpark (python 3), для которых требуются следующие библиотеки python, определенные в моем requirements.txt. Я в некотором роде не знаю, как/с чего начать, чтобы я мог разрабатывать локально, а затем успешно публиковать задания и не попадать в цикл проб и ошибок.

python-dateutil pyyaml jsonpath-ng jinja2 анализатор данных pymmh3 (чистый python)

Как следует разрабатывать локально на моей машине, прежде чем даже пытаться отправлять задания PySpark? Когда я читаю документы на сайте AWS и различные статьи в блоге AWS, я чувствую себя довольно растерянным.

  1. Должен ли я использовать локальные конечные точки разработки? В этом документе говорится, что они не поддерживаются для Glue 2.0, и ссылка приводит меня к статье с надписью «Выполнение заданий Spark ETL с сокращенным временем запуска». что ничего не говорит о конечных точках местного развития или идеях для местного развития. https://docs.aws.amazon.com/glue/latest/dg/dev-endpoint.html и https://docs.aws.amazon.com/glue/latest/dg/reduced-start-times-spark-etl-jobs.html
  2. Затем я проверил этот документ «Разработка и тестирование сценариев ETL локально с использованием библиотеки ETL AWS Glue» по адресу https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-libraries.html В этом документе, похоже, упоминается только Клей 1.0…. будет ли это работать для 2.0? Когда я смотрю на https://github.com/awslabs/aws-glue-libs опять же, все, что я вижу, — это ссылки на 1.0 и ничего на 2.0. Этот билет также касается: https://github.com/awslabs/aws-glue-libs/issues/51 1.0 артефактов, похоже, ссылаются на spark 2.4.3, который совпадает с 2.0, но есть множество ссылок на то, как отличается среда для заданий Glue 2.0…. поэтому следует ли ожидать, что вложение времени в локальную разработку с помощью этих библиотек aws-glue 1.0 будет работать в 2.0, особенно при попытке протестировать дополнительные модули?
  3. Эта статья в блоге AWS «Создание модулей Python из колеса для рабочих нагрузок Spark ETL с использованием AWS Glue 2.0» кажется полезной для того, как упаковать ваши модули для отправки заданий, но не помогает в отношении локального тестирования/разработки: https://aws.amazon.com/blogs/big-data/building-python-modules-from-a-wheel-for-spark-etl-workloads-using-aws-glue-2-0/
  4. Эта статья в блоге AWS: «Локальная разработка заданий AWS Glue ETL с использованием контейнера» снова кажется многообещающей, но снова ссылается на проект aws-glue-libs и соответствующее изображение docker для 2.0 «amazon/aws-glue-libs:glue_libs_2.0.0_image_01″…. но, увы, этого не существует, и опять же проект github не упоминает 2.0. https://github.com/awslabs/aws-glue-libs и https://aws.amazon.com/blogs/big-data/developing-aws-glue-etl-jobs-locally-using-a-container/ также: https://aws.amazon.com/blogs/big-data/building-an-aws-glue-etl-pipeline-locally-without-an-aws-account/

В конце концов, я немного запутался в том, как успешно запустить w/ AWS Glue 2.0 с локальной разработкой и упаковкой python для Glue 2.0, Python 3, PySpark…. есть какие-либо предложения? Спасибо!

Комментарии:

1. Я нахожусь в аналогичной ситуации. Я создал свой собственный докер, изучая образ AWS, я смог делать все локально, кроме извлечения данных из Redshift из-за проблемы с SSL… Если я решу ее, я поделюсь здесь изображением.

2. спасибо за информацию, так что я не схожу с ума :). Я занимался некоторыми исследованиями и разработками с библиотеками aws-glue 1.0, но не знаю, сработает ли что-либо, что я с ним кодирую, если оно будет представлено в версии 2.0.

3. < docs.aws.amazon.com/glue/latest/dg/release-notes.html >: Здесь вы можете проверить разницу между версией клея 1 и 2, и если изменение версии не влияет на выполняемую вами работу, вы можете перейти по ссылке для настройки: >< aws.amazon.com/blogs/big-data/… >