REPL with Glue + Zeppelin - это медленно - ожидается?
Я проверяю Glue в качестве замены нашего ETL-конвейера и противостою некоторым потенциальным препятствиям в миграции благодаря скорости, производительности и интерактивности процесса REPL при разработке преобразований.
Среда:
- Подтверждение концепции для одного CSV-файла, сжатого и сохраненного в корзине s3.
- Сжатый этот файл 458 МБ. Несжатый этот файл составляет 3,4 ГБ. Я тестирую трансформации, используя рекомендованный подход ноутбука Zeppelin, работающего на конечной точке разработчика Glue
Замечания:
Создание простой карты в новый столбец и подсчет строк по этому набору данных занимает больше времени, чем я ожидал:
%pyspark
def normalize_fields(dynamicRecord):
# medium
if dynamicRecord['app_id'] is None:
dynamicRecord['medium'] = 2
elif dynamicRecord['app_id'].lower() == 'unknown' or dynamicRecord['app_id'].lower() == '_unknown':
dynamicRecord['medium'] = 0
elif dynamicRecord['app_id'] is not None:
dynamicRecord['medium'] = 1
else:
dynamicRecord['medium'] = 0
calculated1 = Map.apply(frame=impressions_datasource0,
f=normalize_fields, transformation_ctx="calculate1")
calculated1.count()
4248637L строк
(Заняло 21 мин 41 сек. Последнее обновление: анонимно, 11 февраля 2019 г., 10:49:46.)
Вопрос:
Это складывается как то, что мы ожидаем от производительности при работе в Zeppelin REPL? Если нет, какие-либо рекомендации по улучшению этой производительности?