Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Data Mining - технологии обработки больших данных. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
06.09.2026
Размер:
2 Мб
Скачать
После этого появится список полей, которые присутствуют в индексе.
Выберите request_date (рис. 4.3).
Рисунок 4.3 – Создание столбчатой диаграммы. Шаг 2
Выберите две колонки макета сверху слева и перетащите диаграмму на
вновь созданную строку в левой колонке (рис. 4.4).
Рисунок 4.4 – Подготовка для создания второй диаграммы
Теперь выберите department как поле, которое надо сгруппировать по диаграмме. Результат на рис. 4.5.
Рисунок 4.5 – Круговая диаграмма по параметру department
Добавьте Facet filter (количественный фильтр) с левой стороны (параметр фильтрации product, рис. 4.6).
41
Рисунок 4.6 – Добавление фильтра Facet
Нажмите на значок карандаша, чтобы выйти из режима редактирования. Рядом расположена кнопка сохранения. Cохраните панель. Появится сообщение «Page saved !» (рис. 4.7).
Рисунок 4.7 – Панель сохранена
Задача 2. Отобразить временные зависимости некоторых полей индекса live_logs. Для этого запустите генератор логов и с определенной
периодичностью делайте скриншоты того, как меняются построенные
диаграммы.
Таким образом, при выполнении практикума был подробно рассмотрен
и задокументирован процесс создания пользовательской панели
инструментов исходя из потребностей пользователя.
Практикум 4.2. Использование средств визуализации
Цель: отобразить графически корреляции, обнаруженные в
предыдущих практикумах.
Задачи
1. Отобразить визуально результаты работ из собственных задач
Практикума 3.1.
2. Отобразить визуально результаты работ из собственных задач
Практикума 3.2.
3. Отобразить визуально результаты работ из собственных задач
Практикума 3.3.
Ход выполнения
При выполнении практикума ход действий при решении поставленных задач аналогичен ходу действий для задачи 1 Практикума 4.1.
42
Приложение А
$ hs mapper.py reducer.py myinput.txt joboutput
$ hadoop fs -cat jobinput/part-0000 | less.
$ cat ../data/purchases.txt | ./mapper.py
$ cat ../data/purchases.txt | ./mapper.py | sort | ./reducer.py
Работа с HDFS обеспечивается командами Linux, перед которыми добавляется: $ hadoop fs -название_команды. Например, для вывода списка файлов, находящихся в
главном каталоге HDFS, необходимо выполнить следующую команду: $ hadoop fs -ls.
Перед запуском MapReduce необходимо загрузить файл для обработки в файловую систему HDFS. Для выполнения загрузки необходимо ввести следующую команду: $ hadoop fs -put имя_файла. Если файл находится в другой директории, тогда: $ hadoop fs -put путь/имя_файла.
Для запуска MapReduce необходимо выполнить следующую команду:
Стоит заметить, что название директории для сохранения результата не должно совпадать с уже существующими директориями в HDFS.
После запуска MapReduce начнется выполнение запроса, на экране будет выводится статус выполнения map и reduce.
При успешном выполнении запроса будут созданы файлы: _SUCCESS, _logs и part-00000, содержащий полученный результат. Чтобы просмотреть полученный результат, необходимо воспользоваться командой:
Кроме того, для отладки написанных программ перед запуском MapReduce можно выполнить каждую часть map и reduce по отдельности. Для этого необходимо перейти в директорию с исходным кодом программ и выполнить следующие команды:
Для отладки map-запроса:
Для отладки map и reduce:
Список основных команд по взаимодействию с HDFS.
$ hadoop fs -ls – список файлов в HDFS.
$ hadoop fs -ls my_dir – список файлов директории my_dir в HDFS.
$ hadoop fs -head -50 my_file.txt – вывести первые 50 строк из файла my_file.txt, загруженного в HDFS.
$ hadoop fs -mv my_file.txt new_file.txt – переименовать файл с my_file.txt на new_file.txt в HDFS.
$ hadoop fs -rm my_file.txt – удалить файл или директорию из HDFS.
$ hadoop fs -rm -r my_dir – удалить директорию со всеми файлами внутри из HDFS.
$ hadoop fs -mkdir my_dir – создать директорию в HDFS.
$ hadoop fs -put my_file.txt – загрузить файл my_file.txt в HDFS.
$ hadoop fs -put my_file.txt my_dir – загрузить файл my_file.txt в директорию my_dir HDFS.
$ hs mapper.py reducer.py myinput.txt joboutput – запуск MapReduce запроса;
указываются файлы, реализующие map и reduce, исходный набор данных и директорию, в которую будут добавлены файлы с результатом запроса.
$ hadoop fs -cat my_file.txt | less – покажет содержимое файл my_file.txt в HDFS, для выхода из просмотра необходимо нажать сочетание клавиш ctrl+z.
$ hadoop fs -get joboutput/part-00000 mylocalfile.txt – перенести содержимое файла part-00000 в mylocalfile.txt из HDFS на локальную машину.
43
Приложение Б
Python – высокоуровневый язык программирования общего назначения,
направленный на повышение производительности разработчика и читаемости кода.
#!/usr/bin/python – шебанг, используемый как для переносимости между ОС,
так и для переносимости в виртуальных средах. Шебанг (shebang) – в
программировании последовательность из двух символов: «#!» в начале файла
скрипта. Когда скрипт с шебангом выполняется как программа в Unix-подобных
операционных системах, загрузчик программ рассматривает остаток строки после
шебанга как имя файла программы-интерпретатора. Загрузчик запускает эту программу и передаёт ей в качестве параметра имя файла скрипта с шебангом.
Подключение модулей
import имя_модуля – осуществление подключения модулей. Модуль –
любой файл с программой, обеспечивающий доступ к ее классам, функциям и
объектам.
1. import sys – подключение модуля sys, обеспечивающего доступ к
некоторым переменным и функциям, взаимодействующим с интерпретатором
python. Используемые функции модуля sys в практикуме:
sys.stdin - стандартный ввод.
sys.stdout - стандартный вывод.
2. import re – подключение модуля re, обеспечивающего работу с
регулярными выражениями. Чаще всего регулярные выражения используются для:
поиска в строке; разбиения строки на подстроки; замены части строки.
a. re.sub(pattern, repl, string) – метод sub ищет шаблон в строке и заменяет
его на указанную подстроку. Если шаблон не найден, строка остается неизменной.
Пример: re.sub(r'Date', 'Data', 'Big Date'), результат: ‘Big Data’.
b. re.split(pattern, string, [maxsplit=0]) – метод split разделяет строку по заданному шаблону. Пример: re.split('t', 'Data'), результат: [‘Da’, ‘a’].
3. import csv – подключение модуля csv, обеспечивающего работу с
файлами формата CSV. CSV – это текстовый файл, в котором каждая строка имеет несколько полей, разделенных запятыми, или другими разделителями.
a. csv.reader(‘csvfile’, delimiter=’разделитель’) – открытие и считывание
данных из файла по указанному пути, возвращает объект чтения, который будет
перебирать строки в заданном csvfile;
b. csv.writer(‘csvfile’, delimiter='\t', quotechar='"', quoting=csv.QUOTE_ALL) возврат объекта writer, ответственного за
преобразование данных пользователя в строки с разделителями для данного
файлового объекта.
i. csv.QUOTE_ALL – указывает объектам writer процитировать все поля;
ii. quotechar – одно символьная строка, используемая для кавычек полей,
содержащих специальные символы, такие как разделитель или quotechar, или содержащие символы новой строки. По умолчанию используется '"'.
Форматированный вывод
1. print() – обеспечивает вывод на экран.
2. print(“Some values = {0}\t{1}”.format(val1, val2)) – обеспечивает
форматированный вывод, в котором вместо «0» и «1» будут подставлены
соответствующие значения val1 и val2.
44
Типы данных
1. list – упорядоченные изменяемые коллекции объектов произвольных
типов (как массив, но типы могут отличаться).
s = [] или s = list() – объявление пустого списка.
s = [‘1’, ‘2’, ’3’] – список из трех элементов, которые являются строками.
Применив к строке функцию split(), получаем список из строк, которые
удалось получить в результате деления исходной строки по заданному
разделителю. Пример:
line = “some text here
data = line.split(“ ”)
print(data) # получим список из трех элементов [‘some’, ‘text’, ‘here’]
print(len(data)) # получим 3.
Зная количество элементов в списке, можно присвоить каждый из них
отдельной переменной:
var1, var2, var3 = data # var1 = ‘some’, var2 = ‘text’, var3 = ‘var3’.
2. Явное преобразование к нужному типу данных осуществляется путем
указания типа. Пример:
a. Преобразование типа float к int: int(2.2) # получим 2;
b. Преобразование строки к типу float: float(“2.232”) # получим 2.232
Работа со строками
Строки – упорядоченные последовательности символов, используемые для хранения и представления текстовой информации.
1. string[i] – обращение по индексу.
2. string[i:j:step] – извлечение среза. С i-го элемента по j-й с шагом step.
3. len(string) - длина строки.
Для работы со строками существуют встроенные функции. Чтобы вызвать
функцию, после строки необходимо поставить точку и указать имя функции. Функции для работы со стоками можно применять последовательно, например:
string.strip().split(‘\t’).
4. string.strip() – удаление пробельных символов в начале и в конце
строки.
5. string.split (‘символ’) – разбиение строки по разделителю.
6. string.find (str, [start], [end]) – поиск подстроки в строке. Возвращает
номер первого вхождения или -1.
45
Список литературы
1. https://my.vmware.com/en/web/vmware/free#desktop_end_user_computing/
vmware_workstation_player/14_0 - Официальный сайт разработчика
VMWARE_WORKSTATION_PLAYE.
2. http://content.udacity-data.com/courses/ud617/Cloudera-Udacity-Training-
VM-4.1.1.c.zip - Cloudera Udacity.
3. https://www.cloudera.com/downloads/quickstart_vms.html - Cloudera
QuickStart VM.
4. Воронова Л.И. Интеллектуальные базы данных: учебное пособие /
МТУСИ. - М., 2013. - 35 с.
5. Воронова Л.И., Воронов В.И. BIG DATA. МЕТОДЫ И СРЕДСТВА
АНАЛИЗА: учебное пособие. – М., 2016.
6. Трунов А.С., Воронова Л.И., Воронов В.И. Разработка методов
распределения для высокопроизводительных вычислений в
многочастичных системах // Международный журнал прикладных и
фундаментальных исследований. - 2013. - № 10-2. - С. 192-194.
7. Хомутова Е.В., Воронова Л.И. Автоматизация ранжирования типов
визуализации в DATA MINING для нереляционных баз данных //
Современные наукоемкие технологии. - 2014. - № 5-2. - С. 219-221.
8. Воронов В.И., Воронова Л.И. О повышении результативности
магистерских программ в условиях инновационной экономики/
Инновационные подходы в науке и образовании: теория, методология,
практика. - Пенза: Наука и просвещение, 2017. - С. 35-44.
9. Voronova L.I., Trunov A.S., Voronov V.I. THE DISTRIBUTED
CALCULATORS MODEL FOR MOLECULAR-DYNAMIC
SIMULATION OF STRONG INTERACTION SYSTEMS //
Международный журнал экспериментального образования. - 2013.
- № 12. - С. 82-88.
10. Воронов В.И., Усачев В.А. Компетенция «Машинное обучение и
Большие данные». – Гл. 11. Приоритетные направления развития науки
и образования: монография. - Пенза: МЦНС Наука и просвещение.
- 2017. - С. 97-108. ISBN 978-5-907023-42-012.
46
План УМД на 2018/19 уч.г.
С. 12, п. 59.
Вячеслав Игоревич Воронов
Лилия Ивановна Воронова
Василий Александрович Усачев
Data Mining - технологии обработки больших данных
Учебное пособие
для направлений 15.04.04, 27.04.04
Подписано в печать 26.04.2018г. Формат 60х90 1/16.
Объём 3,1 усл.п.л. Тираж 50 экз. Изд. № 49.
47