BigData fast solutions
Условие: Нужно написать две программы: Первая генерирует бинарный файл (min 2Гб), состоящий из случайных 32-рязрядных беззнаковых целых чисел (big endian). Вторая считает сумму этих чисел (с применением длинной арифметики), находит минимальное и максимальное число.
Код:
- Parallel_python.ipynb - решение задания
- Parallel_better.ipynb - улучшенное решение с учетом замечаний. (Параллельный код работает хуже обычного)
Файлы:
- time_count.png - замеры времени при большом размере файла.
Условие:
-
Нужно сгенерировать файл, содержащий 2000 128-битных случайных целых чисел, каждое число на отдельной строке.
-
Посчитать, какое суммарное количество простых множителей присутствует при факторизации всех чисел. Например, пусть всего два числа: 6 и 8. 6 = 2 * 3, 8 = 2 * 2 * 2. Ответ 5. При реализации нужно использовать операции с длинной арифметикой (BigInteger и т.д.)
-
Реализовать подсчет
- простым последовательным алгоритмом
- многопоточно, с использованием примитивов синхронизации
- с помощью 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-битных чисел
Условие: Нужно написать скрипт, который скачивает все данные прошедших президентских выборов для всех избирательных участков.
Входная точка по ссылке. Затем нужно перейти на сайты региональных избирательных комиссий. Результаты нужно сохранить в cvs
-файл, sqlite
базе данных или parquet
-файле. В итоге должна получиться таблица с полями:
- название региона
- название ТИК
- номер УИК
- 20 стандартных полей из итогового протокола
Код:
- Parsing_site_elections_2018.ipynb - парсинг страниц сайта с результатами выборов президента России 2018
Файлы:
- vibory.csv и vibory_index.csv - полученные датасеты (второй с мультииндексом)
Условие:
Нужно, используя Spark
:
- найти явку (%) по всем регионам, результат отсортировать по убыванию
- выбрать любимого кандидата и найти тот избиратльный участок, на котором он получил наибольший результат (учитывать участки на которых проголосовало больше 300 человек)
- найти регион, где разница между ТИК с наибольшей явкой и наименьшей максимальна
- посчитать дисперсию по явке для каждого региона (учитывать УИК)
- для каждого кандидата посчитать таблицу: результат (%, округленный до целого) - количество УИК, на которых кандидат получил данный результат
Код:
- Spark_elections.ipynb - решение задания, код на pySpark для поиска необходимых из датасета по выборам президента величин.
Файлы:
- President elections % presence.csv - результаты явки по регионам
- Presence Std.csv - дисперсия явки, учитывая УИК, по регионам