Giter Site home page Giter Site logo

bigdata's Introduction

BigData

BigData fast solutions

Решения заданий

Задание 1

Условие: Нужно написать две программы: Первая генерирует бинарный файл (min 2Гб), состоящий из случайных 32-рязрядных беззнаковых целых чисел (big endian). Вторая считает сумму этих чисел (с применением длинной арифметики), находит минимальное и максимальное число.

Код:

  • Parallel_python.ipynb - решение задания
  • Parallel_better.ipynb - улучшенное решение с учетом замечаний. (Параллельный код работает хуже обычного)

Файлы:

  • time_count.png - замеры времени при большом размере файла.

Задание 2

Условие:

  1. Нужно сгенерировать файл, содержащий 2000 128-битных случайных целых чисел, каждое число на отдельной строке.

  2. Посчитать, какое суммарное количество простых множителей присутствует при факторизации всех чисел. Например, пусть всего два числа: 6 и 8. 6 = 2 * 3, 8 = 2 * 2 * 2. Ответ 5. При реализации нужно использовать операции с длинной арифметикой (BigInteger и т.д.)

  3. Реализовать подсчет

    • простым последовательным алгоритмом
    • многопоточно, с использованием примитивов синхронизации
    • с помощью Akka (или аналога)
    • c помощью RxJava (или аналога)

Код:

  • Rx.kt - с помощью RxJava
  • Data.kt - метод для создания файла
  • Factorization.kt - метод факторизации числа
  • Multithreading.kt - методы для ускорения расчета количества чисел при факторизации чисел из файла
  • Run.kt - запуск всех методов и подсчет времени
  • Sequential.kt - последовательный расчет

Файлы:

  • somefile.txt - файл с 20 числами bigInteger для тестирования
  • random64numbers.txt - сгенерированный файл с 2 тысячами 64-битных чисел
  • random128numbers.txt - сгенерированный файл с 2 тысячами 128-битных чисел

Задание 3.1

Условие: Нужно написать скрипт, который скачивает все данные прошедших президентских выборов для всех избирательных участков.

Входная точка по ссылке. Затем нужно перейти на сайты региональных избирательных комиссий. Результаты нужно сохранить в cvs-файл, sqlite базе данных или parquet-файле. В итоге должна получиться таблица с полями:

  • название региона
  • название ТИК
  • номер УИК
  • 20 стандартных полей из итогового протокола

Код:

  • Parsing_site_elections_2018.ipynb - парсинг страниц сайта с результатами выборов президента России 2018

Файлы:

  • vibory.csv и vibory_index.csv - полученные датасеты (второй с мультииндексом)

Задание 3.2

Условие: Нужно, используя Spark:

  • найти явку (%) по всем регионам, результат отсортировать по убыванию
  • выбрать любимого кандидата и найти тот избиратльный участок, на котором он получил наибольший результат (учитывать участки на которых проголосовало больше 300 человек)
  • найти регион, где разница между ТИК с наибольшей явкой и наименьшей максимальна
  • посчитать дисперсию по явке для каждого региона (учитывать УИК)
  • для каждого кандидата посчитать таблицу: результат (%, округленный до целого) - количество УИК, на которых кандидат получил данный результат

Код:

  • Spark_elections.ipynb - решение задания, код на pySpark для поиска необходимых из датасета по выборам президента величин.

Файлы:

  • President elections % presence.csv - результаты явки по регионам
  • Presence Std.csv - дисперсия явки, учитывая УИК, по регионам

bigdata's People

Contributors

sabinaalieva avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.