Шрифт:
Интервал:
Закладка:
Если вы знакомы со стандартными командами ОС *nix (то есть Unix и Linux), то можете пропустить эту часть. Всем остальным эта информация может оказаться полезной.
Предположим, вы получили данные в формате CSV-файла объемом 10 МВ и вам нужно знать общее количество записей. Как их подсчитать? Открыть файл в Excel, пролистать до конца или воспользоваться комбинацией клавиш CTRL+↓ и посмотреть номер последней строки? Да, можно и так. А что, если файл будет объемом 100 МВ? Конечно, Excel справится и с ним, но на выполнение этой задачи может уйти до десяти минут. Ладно, а как насчет файла объемом 1 GB? Здесь такой подход уже не сработает.
Ок, немного изменим условия задачи: теперь вы имеете дело с тремя CSV-файлами объемом 10 МВ. Открыть каждый из них по отдельности в Excel? Допустим. А если у вас 300 таких файлов? Да, здесь явно нужен другой подход.
А что, если я скажу, что на решение этой задачи потребуется всего несколько секунд? Пакет стандартных команд ОС *nix представляет собой набор небольших специализированных утилит, обеспечивающих выполнение одной конкретной функции. wc представляет собой Unix-утилиту, выводящую количество слов (word count), а также строк и символов.
В: Но у меня нет доступа к *nix! У меня ОС Windows.
О: Ничего страшного, просто установите бесплатно cygwin[63]. Это позволит вам пользоваться командами Unix в ОС Windows.
В: Но у меня нет доступа к *nix! У меня OS X.
О: Mac OS X принадлежит семейству операционных систем Unix. Так что ваша цепочка действий следующая: идете в приложения Applications, открываете утилиты Utilities и кликаете на Terminal. Та-дам! Можете пользоваться командами Unix.
Формат команды элементарный: wc — l filename
wc — утилита для вывода количества слов, — l (символ) обозначает, что требуется вывести количество строк, а не слов, filename — название файла. Например:
$ wc — l weblog_20150302.log
1704190 weblog_20150302.log
($ — это подсказка или напоминание; у вас она может быть другой).
Этот пример показывает, что в файле weblog 1,7 млн строк. Для подсчета строк в каждом файле директории укажите название папки вместо имени файла:
wc — l mydatafiles/
123 file1.csv
456 file2.csv
579 total
Все очень просто. Утилита даже вывела итоговую строку. Я постоянно пользуюсь этой командой при проверке качества данных, чтобы оценить, сколько времени может занять загрузка набора данных в базу данных, а также для проверки, что все данные загрузились полностью.
Надеюсь, вы уловили главное: простые утилиты, научиться пользоваться которыми можно за несколько минут, способны значительно усилить набор аналитических навыков и повысить продуктивность работы.
Каким инструментом или утилитой научиться пользоваться, зависит от того, каким набором навыков вы уже владеете и какие у вас слабые места.
Будьте уверены, слабые места есть у всех. Последуйте моей рекомендации.
Если вам нужен дополнительный стимул, задумайтесь о следующем. В опросе на тему размера оплаты труда специалистов по работе с данными O’Reilly’s 2013 Data Science Salary Survey приняли участие посетители двух крупных конференций Strata в 2012 и 2013 годах, при этом выяснилось следующее: размер оплаты труда положительно коррелировал с количеством инструментов, которыми пользовались респонденты.
В среднем респонденты использовали в работе 10 инструментов и их медианный доход составлял 100 тыс. долл. У тех, кто использовал 15 и более инструментов, показатель медианного дохода был 130 тыс. долл.
Еще более очевидно это отражено в опросе 2014 года[64] (рис. 4.4).
Рис. 4.4. Корреляция между применением разного числа инструментов и оплатой труда специалистов по работе с данными
Источник: опрос 2014 O’Reilly Data Science Salary Survey, рис. 1.13
В 2013 году авторы опроса сделали заключение:
Есть веские основания утверждать, что владение такими инструментами, как R, Python, инструментарием Hadoop, D3, а также масштабируемыми инструментами машинного обучения, свидетельствует о более высокой квалификации аналитика, позволяя ему претендовать на более высокооплачиваемую позицию, чем когда аналитик владеет такими инструментами, как SQL, Excel и платформы RDB [реляционных баз данных]. Мы также пришли к выводу, что чем большим числом инструментов способен пользоваться аналитик, тем лучше: если вы задумываетесь о том, чтобы научиться применять инструмент из набора Hadoop, лучше изучите сразу несколько.
Наконец, опрос 2014 года показал разницу в оплате труда почти в 15 тыс. долл. между аналитиками, умеющими работать с программным кодом, и не умеющими. Так что если это ваше слабое место, окажите себе услугу, научитесь программировать!
Теперь, когда мы рассмотрели типы специалистов по аналитике и их навыки, можно перейти к вопросу организации их работы в контексте компании. Сначала давайте остановимся на двух крайних ситуациях.
ЦЕНТРАЛИЗОВАННАЯ МОДЕЛЬ
Есть центральная команда аналитиков, и все аналитики подотчетны ей. В этом варианте есть много преимуществ. Во-первых, команда может стандартизировать навыки, процесс обучения и применяемый инструментарий, кроме того, аналитики совместно используют ресурсы, что ведет к снижению расходов на приобретение лицензий на ПО. Во-вторых, команде аналитиков бывает легче продвигать результаты аналитической работы в компании. В-третьих, аналитики имеют возможность профессионального и личного общения, они могут чему-то научиться у коллег и поделиться с ними своим опытом. К тому же они ощущают себя частью команды единомышленников. В-четвертых, у них есть или может возникнуть ощущение большей объективности, поскольку успех их работы, как правило, не соотносится с успехом проектов, анализом которых они занимаются. Наконец, они способны продвигать основные источники данных в качестве единственных источников верных данных. Из недостатков этого способа организации работы аналитиков можно выделить то, что они оказываются в некоторой степени удалены от руководителей бизнеса и их целей, в результате чего стиль их работы может стать более бюрократическим[65]. Как отмечает Пиянка Джейн, «все должно подчиняться единому процессу, должны быть расставлены приоритеты и распределены ресурсы»[66].