Как я могу преобразовать из dataframe в DynamicFrame локально и БЕЗ использования конечных точек glue dev? - PullRequest
0 голосов
/ 01 декабря 2018

Я пытаюсь запустить модульные тесты на своих скриптах pyspark локально, чтобы я мог интегрировать это в наш CI.

$ pyspark
...
>>> import pandas as pd
>>> df = pd.DataFrame([(1,2,3), (4,5,6)])
>>> df
   0  1  2
0  1  2  3
1  4  5  6

Согласно документации , я смогу выполнить преобразование, используя следующее:

from awsglue.dynamicframe import DynamicFrame
dynamic_frame = DynamicFrame.fromDF(dataframe, glue_ctx, name)

Но когда я пытаюсь преобразовать в DynamicFrame, я получаюошибки при попытке создать экземпляр gluecontext

$ pyspark
>>> from awsglue.context import GlueContext
>>> sc
<SparkContext master=local[*] appName=PySparkShell>
>>> glueContext = GlueContext(sc)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Python/2.7/site-packages/awsglue/context.py", line 43, in __init__
    self._glue_scala_context = self._get_glue_scala_context(**options)
  File "/Library/Python/2.7/site-packages/awsglue/context.py", line 63, in _get_glue_scala_context
    return self._jvm.GlueContext(self._jsc.sc())
TypeError: 'JavaPackage' object is not callable

Как мне это работает БЕЗ с использованием AWS Glue Dev Endpoint?Я не хочу, чтобы меня обвиняли КАЖДЫЙ РАЗ Я фиксирую свой код.это абсурд.

Ответы [ 2 ]

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

Почему вы хотите преобразовать данные из DataFrame в DynamicFrame, так как вы не можете выполнять модульное тестирование с помощью Glue API - без насмешек для Glue API?

Я предпочитаю следующий подход:

  1. Записать два файла для каждого клея - job_glue.py и job_pyspark.py
  2. Написать специальный код API для Glue в job_glue.py
  3. Написать специальный код API для не склеивающего задания job_pyspark.py
  4. Напишите тестовые сценарии pytest для тестирования job_pyspark.py
0 голосов
/ 01 декабря 2018

Я думаю, что в настоящее время для нас нет другого альтернативного варианта, кроме использования клея.Для справки: Можно ли проверить код клея AWS на месте?

...