Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Анализ дружеских связей VK с помощью Python

Анализ дружеских связей VK с помощью Python

Все началось со статьи, в которой рассказывалось о построении социальных графов с помощью Wolfram Mathematica. Тогда не смог пройти мимо, и мой доклад будет о том, как все это сделать на любимом Python.

Лев Тонких
Moscow Python Meetup №30

Avatar for Moscow Python Meetup

Moscow Python Meetup

November 19, 2015
Tweet

More Decks by Moscow Python Meetup

Other Decks in Technology

Transcript

  1. 40 50+ 500+ 1500 млн человек суммарная аудитория группы количество

    изданий, сервисов и проектов разработчиков человек в хорошей компании
  2. Livejournal Gazeta.ru Begun Price Ferra Redigo Letidor Канобу Видео Секрет

    фирмы Рамблер Инфографика Новости Почта Финансы Недвижимость Погода Гороскопы Субботний Рамблер Путешествия Касса Еда Город Воздух Волна Рестораны Мослента Lenta.ru Афиша Motor Championat Quto Рамблер Видеостудия
  3. Контакты В группе компаний Rambler&Co всегда есть открытые вакансии для

    тех, кто хочет профессионально расти и развиваться, занимаясь тем, что по-настоящему нравится [email protected] www.rambler-co.ru/jobs
  4. Статья на Хабре Анализ дружеских связей VK с помощью Wolfram

    Mathematica “На моих 333 друзьях это заняло 119 секунд” - автор об получении списка общих друзей
  5. In The End [({Ваш друг}, [{}, {}]),()] Генерим json d3

    + добавляем картинки к каждому узлу
  6. Получение списка вглубь 1.14 2.2427 3.223 098 - не конечное

    значение => Big Data (объем, скорость, многообразие)
  7. Слишком медленно Хранимые процедуры не спасают Мнопоточность - быстрее на

    несколько секунд Нужен MAP REDUCE: Распределенные задачи Ноды/Инстансы
  8. Клиенты execute == 25 запросов с одного => 5 клиентов

    == 125 запросов в секунду Можно обрабатывать ошибки и sleep() Вечный None
  9. Remote Procedure Call Главный сервер получает id и код операции

    Делает запрос на всех друзей -- data data/25(75) -- части Каждую часть доставляем получателю Получатели принимают контакты, делают запросы, возвращают Info поставщику
  10. Итого Переписать 90% кода RPC Брокер Асинхронная очередь Общие друзья

    / глубинные друзья || запускаем задания, склеиваем ответ
  11. Общие друзья 343 за 119с VS 348 за 9с =>

    в 12 раз быстрее 1 воркер: 308 за 4.2с; 2 воркера: за 2с => в 60 раз быстрее
  12. Данные бывают разные Граф глубинных друзей лучше не рисовать 1:

    10 2: 1234 ключа, 517 174 id (419 на 1) Количество вершин: 370341 Количество ребер: 512949
  13. Алгоритмы Диаметр, центр, радиус Page Rank Коэффициент кластеризации ...всего 148

    алгоритмов networkx.github.io/documentation/ networkx-1.9/reference/algorithms.html