Очистка данных экспортируемых в CSV от кода форматирования HTML в Apache Superset
Очистка данных экспортируемых в CSV от кода форматирования HTML в Apache Superset
Используя HTML для форматирования, можно добиться красочных визуализаций в Apache Superset. Но, последствием такого решения является некорректная выгрузка данных в CSV-формат из чарта, так как кастомизация добавляется на уровне запроса к базе данных. Мы разработали дополнение, встраиваемое в Superset, которое решает эту проблему, что будет продемонстрировано в этой статье.
Рассмотрим пример, показанный на рисунке ниже. Здесь наглядно видно, как используя HTML можно преобразить визуализацию «Чарта2» к визуализации на «Чарте1».
Допустим, для более детальной проработки аналитику потребовалось забрать данные чартов. Скачать их с CSV-формате достаточно просто. Необходимо нажать не троеточие в правом верхнем углу экрана, затем «Download» и «Export to csv»:
Сохраним данные чартов в CSV-формате и затем загрузим их в excel. Результат показан на рисунке ниже:
Видно, что данные с «Чарта1» выгружаются не совсем корректно, а также есть еще несколько проблем:
- Если в таблице присутствует html разметка для цветовой индикации ячеек, то он попадает в итоговый файл;
- При открытии CSV в excel:
а) Неправильная кодировка;
б) Разделитель по умолчанию запятая, а необходим точка с запятой.
Можно очистить такие данные на уровне excel, но если требуется неоднократная обработка или массив данных большой, то это существенно увеличит трудозатраты. Бизнес-пользователю такой вариант не может подойти.
Для решения этих проблем было изменено 2 файла: в исходных кодах и конфигурации superset.
Файл superset/utils/csv.py:
Файл superset/config.py:
Выгрузка принимает следующий вид в excel при использовании этого решения:
На данный момент решение встраивается в докер-контейнер, легко переносится из проекта в проект и может быть адаптировано для разных версий Apache Superset.
Источник: Блог bilab










