Как стать автором
Обновить

Spark. План запросов на примерах

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров3.4K

Всем привет!

В этой статье возьмем за основу пару таблиц и пройдемся по планам запросов по нарастающей: от обычного селекта до джойнов, оконок и репартиционирования. Посмотрим, чем отличаются виды планов друг от друга, что в них изменяется от запроса к запросу и разберем каждую строчку на примере партиционированной и непартиционированной таблицы.

Читать далее
Всего голосов 7: ↑7.5 и ↓-0.5+8
Комментарии4

Apache Spark… Это база

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров7.4K

Apache Spark — это фреймворк для обработки и анализа данных, который позволяет выполнять операции на вычислительных кластерах и поддерживает несколько языков программирования: Scala, Java, Python, R и SQL.

В статье рассмотрим основные понятия для понимания обработки данных на Spark, разберем функционал его компонентов и сформируем DataFrame разными способами.

Читать далее
Всего голосов 12: ↑6 и ↓60
Комментарии4

Призрак локомотива или биржевой рынок через призму корреляций

Время на прочтение12 мин
Количество просмотров6.5K
В этой статье будет продемонстрирована техника обработки информации по биржевым котировкам с помощью пакета pandas (python), а также изучены некоторые «мифы и легенды» биржевой торговли посредством применения методов математической статистики. Попутно кратко рассмотрим особенности использования библиотеки plotly.

Одной из легенд трейдеров является понятие «локомотива». Описать ее можно следующим образом: есть бумаги «ведущие» и есть бумаги «ведомые». Если поверить в существование подобной закономерности, то можно «предсказывать» будущие движения финансового инструмента по движению «локомотивов» («ведущих» бумаг). Так ли это? Есть ли под этим основания?
image
Читать дальше →
Всего голосов 12: ↑10 и ↓2+8
Комментарии10

Перспективны ли просевшие акции? Проанализируем с помощью python

Время на прочтение4 мин
Количество просмотров9.2K

Проанализируем динамику акций аутсайдеров и лидеров


Недавно прочитал статью о том, что акции-аутсайдеры (те, что максимально упали в цене за месяц) индекса Мосбиржи имеют бОльшие перспективы роста, нежели в среднем по индексу.

В данном исследовании рассмотрю


  1. динамику акций аутсайдеров и лидеров роста (период 30 дней)
  2. Имеет ли смысл покупать на просадках и играть на понижение после значительного роста

Важно! Я буду рассматривать абсолютно каждый день по всем акциям, соответственно многие просадки будут дивидендными гэпами (идея — рассмотреть все отклонения).

Буду рассматривать акции индекса Мосбиржы (только акции с долей в индексе >0,5%), а именно:
Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии13

Визуализация столбца из DataFrame с помощью библиотеки Seaborn

Время на прочтение1 мин
Количество просмотров7.5K
Попробуем визуализировать данные по рекламным кампаниям, которые храняться в DataFrame.

Дано:


DataFrame, в котором хранится статистика по рекламным кампаниям по следующим показателям:

  • CampaignName
  • Date
  • Impressions
  • Clicks
  • Ctr
  • Cost
  • AvgCpc
  • BounceRate
  • AvgPageviews
  • ConversionRate
  • CostPerConversion
  • Conversions


Читать дальше →
Всего голосов 17: ↑10 и ↓7+3
Комментарии2

Прогноз состояния VoIP-сети на основе текстовых лог-файлов SIP-сервера приложений

Время на прочтение5 мин
Количество просмотров2.7K

Контроль за состоянием сигнальной сети VoIP является одним из важных условий, позволяющих UCaaS-провайдеру предоставлять клиентам гарантированный уровень качества таких услуг как аудио- и видеовызовы, приём и передача факсов. Обычно такой контроль осуществляется с помощью различных систем мониторинга, сбора и анализа трафика, анализа CDR. Некоторые из параметров сигнальной сети достаточно трудно, а часто и невозможно оценить указанными способами.

Читать дальше →
Всего голосов 13: ↑12 и ↓1+11
Комментарии2

Получение статистики по всем клиентам из API Яндекс Директ в разрезе дней с помощью Python

Время на прочтение5 мин
Количество просмотров5.7K
В работе часто использую короткую статистику в разрезе дней чтобы отслеживать отклонения трафика.

Более подробно о написании запросов написал в статье « Получение рекламных кампаний Яндекс Директ с помощью API в DataFrame (Python)».

В данной статье я в большей степени расскажу о том, как структурировать данные и запросы, чтобы этим можно было нормально пользоваться.

Нам следует прописать запрос к серверу как функцию.

Лично я сделал 2 файла: функция с запросом и файл с данными, которые будут передаваться в функцию.

В первом файле пишем функцию


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

Передача данных в функцию у меня выглядит следующим образом:

def rep(token,login,date_from,date_to):

Пишем запрос к серверу API Яндекс Директ


Данный запрос запрашивает данные по следующим параметрам:

  • Date
  • Impressions
  • Clicks
  • Ctr
  • Cost
  • AvgCpc
  • AvgImpressionPosition
  • AvgClickPosition
  • AvgTrafficVolume
  • BounceRate
  • AvgPageviews
Читать дальше →
Всего голосов 6: ↑6 и ↓0+6
Комментарии7

Отправка статистики из DataFrame в BigQuery на примере статистики Яндекс Директ

Время на прочтение2 мин
Количество просмотров1.6K
В этой статье расскажу о том, как я свел статистику по всему контексту в одном месте с помощью BigQuery и Data Studio

У меня появилась необходимость визуализировать данные по всем источникам трафика.

Для данной задачи я использую Data Studio. Google Ads туда подтягивается прекраснейшим образом, а вот с Яндекс Директ все сложнее.

Я для себя выбрал полуручной способ сведения статистики: получение и отправка статистики со своего компьютера.

Я ежедневно получаю статитику в различных разрезах в DataFrame.



И это отлично потому, что в pandas есть библиотека pandas_gbq, которая умеет отправлять DataFrame в BigQuery.
Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии0

Основы работы со Spark DataFrame

Время на прочтение4 мин
Количество просмотров25K

При работе с распределенными базами данных, возникают задачи, которые ввиду технических ограничений сложно или невозможно решить с помощью всем привычного пакета Pandas на Python. Решением может стать использование распределенных вычислений Spark и его собственных DataFrame.

Читать далее
Всего голосов 2: ↑1 и ↓10
Комментарии0

Параллельная обработка и преобразование json-фалов в pandas

Время на прочтение4 мин
Количество просмотров3.9K

Привет, Хабр!

Структурированные данные – хорошо, а полуструктурированные – не проблема. Формат json хоть и является очень популярным, однако не очень удобен для анализа, особенно если данных много, и они разделены на отдельные файлы.

Разберем преобразование множества json файлов различной структуры в привычный аналитикам pandas.DataFrame.

Читать далее
Всего голосов 3: ↑2 и ↓1+1
Комментарии0

Количество партиций в Spark DataFrame, DataSet на основе Relational Data Base table

Время на прочтение5 мин
Количество просмотров1.6K

В прошлой статье мы рассмотрели количество партиций, которое по умолчанию создается Apache Spark при инициализации DataFrame, DataSet. В текущей статье продолжим рассматривать количество партиций у Spark DataFrame и DataSet, созданных на основе таблицы в Relational Database.

Читать далее
Всего голосов 12: ↑10 и ↓2+8
Комментарии0

Лучший формат данных для хранения pandas.DataFrame

Время на прочтение4 мин
Количество просмотров7.4K

Привет, Хабр!

Меня зовут Вадим Москаленко и я разработчик инновационных технологий Страхового Дома ВСК. В этой статье, хочу поделится с вами, информацией в области хранения данных.

На сегодняшний день существует огромное количество форматов для хранения данных, и, используя библиотеку Pandas при обработке большого объёма данных, возникает вопрос – а какой формат, с которыми Pandas работает «из коробки», даст наибольшую производительность, при дальнейшем использовании, обработанного DataFrame?

Ремарка: поиск информации по этой теме, привёл меня к репозиторию, за авторством Devforfu (ссылка), но так как информация в нём датируется 2019 годом, а за этот период вышло множество обновлений, я решил написать «свежий» бенчмарк, основываясь на принципах автора – ссылка на обновленный бенчмарк. Отмечу, что из-за слишком большой разницы в полученных результатах, я склоняюсь к тому, что мог совершить ошибку, поэтому далее в статье будет указана информация по оригиналу.

В качестве тестируемых форматов использовались следующие варианты: CSV (как самый популярный текстовый формат), Pickle, Feather, Parquet, Msgpack, HDF. Для сравнения будем использовать следующие метрики: размер сериализованного файла, время загрузки DataFrame из файла, время сохранения DataFrame в файл, потребление оперативной памяти при сохранении и загрузке DataFrame.

Тестовые данные – сгенерированный DataFrame с 1 миллионом строк, 15 столбцами цифр и 15 столбцами строковых значений. Генерация численных данных проводилась с помощью numpy. random.normal, в качестве строчных данных использовались UUID. С появлением в Pandas, категориального типа данных (Categorical data), который использует гораздо меньше памяти и более производительней в обработке (обширный материал для другой статьи), интересно также сравнить насколько изменится производительность форматов, поэтому ещё одним этапом сравнения в тестовых данных стал перевод формата «object» к формату «category».

Читать далее
Всего голосов 15: ↑14 и ↓1+13
Комментарии13

Использование геолокационных данных в машинном обучении: основные методы

Время на прочтение10 мин
Количество просмотров6.7K

Данные о местоположении — это важная категория данных, с которыми часто приходится иметь дело в проектах машинного обучения. Они, как правило, дают дополнительный контекст к данным используемого приложения. Специально к старту нового потока курса по Machine Learning, делимся с вами кратким руководством по проектированию и визуализации элементов с геопространственными данными.

Читать далее
Всего голосов 6: ↑5 и ↓1+4
Комментарии0