Язык для анализа данных

9 языков для Big Data

Если достаточно образованного программиста спросить о современных языках обработки данных, то в первой тройке неизменно окажется R, даже несмотря на то, что многие его и языком не считают. Придуманный в 1997 году, как альтернатива платным продуктам MATLAB и SAS, он медленно, но верно набирал популярность. Сегодня такие компании, как Google и Facebook используют R, чтобы справляться с такими потоками информации, которые и вообразить сложно. Фильтруйте, моделируйте, представляйте данные при помощи всего нескольких строк кода — всё это про R.

В 2013 году проводился опрос в США среди специалистов в области Big Data на предмет выявления наиболее популярного используемого языка. Победил с 61% именно R. Угадайте, кто занял второе место?

Python

Да, 39% набрал один из самых крутых языков программирования, который совсем не случайно оказался популярен и среди людей, работающих с обработкой больших потоков данных. В некотором роде это компромисс между изощренностью R и лёгкостью, которую дарит язык Python. Его популярность обосновывается как раз отсутствием необходимости применения идеальных алгоритмов в угоду возможности включать в работу группу программистов, не имеющих специальных навыков. Если вы хотите начать изучать этот язык, рекомендуем пройти наш онлайн-интесив по питону.

Julia

Язык, который возник совсем недавно, но уже попал на радары всех специалистов Big Data. Он прост и масштабируем, как Python, при этом эффективен, как R. Пока язык Julia молод, ему не хватает мелких доработок, библиотек и элементарной человеческой поддержки, но сомнений в его безоблачном будущем практически нет.

Ну да, какой рейтинг самых популярных языков программирования без участия Java. Пусть это даже не профильная область применения, Java имеет такую армию поклонников-энтузиастов, что создание специальных надстроек и библиотек — дело времени. Загляните внутрь LinkedIn, Facebook, Twitter — и в обработке данных вы найдёте следы Java. Да, у этого языка нет таких возможностей статистического моделирования, какие естьу Python и R, но если прототипирование не является важной задачей — Java может стать отличным решением.

Scala

MATLAB

Если не говорить о MATLAB в контексте обработки и моделирования данных, то о чём вообще тогда стоит говорить? Да, возможно это не лучший язык, не самая доступная среда, но возможности, которые вы получаете, согласившись на оба этих компромисса — практически безграничны. Наука, обработка потоковой информации, анализ полученных и прогнозируемых данных — всё это идеальная область для развёртывания MATLAB.

В этом рейтинге мы просто физически не могли обойти и невероятно популярное детище Google. Go активно разрабатывается, внедряется, постепенно завоевывает позиции в рейтинге популярности, и уж абсолютно точно он не хуже подавляющего большинства своих конкурентов. Он прост, он удобен, он бесконечно перспективен, в конце концов он специально создан для Big Data. А что ещё нужно, чтобы получить хорошую рекомендацию?

Kafka

Kafka — это не совсем язык, а скорее платформа, написанная на Java и Scala, для обработки потоковых запросов. Был разработан компанией LinkedIn для внутренних потребностей в 2011 году, но сегодня используемые алгоритмы не без успеха внедрены в такие гиганты, как Uber, Netflix, PayPal, eBay и многие другие.

Hadoop

Это ещё один набор утилит, библиотек и надстроек, которые вполне можно принять за отдельный язык, адаптирующих широко распространённый Java к обработке Big Data. Его активно используют такие гиганты, как Facebook и Yahoo!, а разработан он небезызвестной Apache Software Foundation, что автоматически заставляет поставить на Hadoop клеймо качества.

Мир IT и не только поглощен обработкой беспредельного количества данных. Будь то социальные сети или научная информация — везде требуются инструменты, значительно превышающие по возможностям устаревшие программы, вроде Excel. Требуются принципиально иные подходы и совершенные алгоритмы для их реализации. Вот 9 языков, с помощью которых работа с Big Data доставит вам чуть меньше головной боли.

Если достаточно образованного программиста спросить о современных языках обработки данных, то в первой тройке неизменно окажется R, даже несмотря на то, что многие его и языком не считают. Придуманный в 1997 году, как альтернатива платным продуктам MATLAB и SAS, он медленно, но верно набирал популярность. Сегодня такие компании, как Google и Facebook используют R, чтобы справляться с такими потоками информации, которые и вообразить сложно. Фильтруйте, моделируйте, представляйте данные при помощи всего нескольких строк кода — всё это про R.

В 2013 году проводился опрос в США среди специалистов в области Big Data на предмет выявления наиболее популярного используемого языка. Победил с 61% именно R. Угадайте, кто занял второе место?

Python

Да, 39% набрал один из самых крутых языков программирования, который совсем не случайно оказался популярен и среди людей, работающих с обработкой больших потоков данных. В некотором роде это компромисс между изощренностью R и лёгкостью, которую дарит язык Python. Его популярность обосновывается как раз отсутствием необходимости применения идеальных алгоритмов в угоду возможности включать в работу группу программистов, не имеющих специальных навыков. Если вы хотите начать изучать этот язык, рекомендуем пройти наш онлайн-интесив по питону.

Julia

Язык, который возник совсем недавно, но уже попал на радары всех специалистов Big Data. Он прост и масштабируем, как Python, при этом эффективен, как R. Пока язык Julia молод, ему не хватает мелких доработок, библиотек и элементарной человеческой поддержки, но сомнений в его безоблачном будущем практически нет.

Ну да, какой рейтинг самых популярных языков программирования без участия Java. Пусть это даже не профильная область применения, Java имеет такую армию поклонников-энтузиастов, что создание специальных надстроек и библиотек — дело времени. Загляните внутрь LinkedIn, Facebook, Twitter — и в обработке данных вы найдёте следы Java. Да, у этого языка нет таких возможностей статистического моделирования, какие естьу Python и R, но если прототипирование не является важной задачей — Java может стать отличным решением.

Scala

MATLAB

Если не говорить о MATLAB в контексте обработки и моделирования данных, то о чём вообще тогда стоит говорить? Да, возможно это не лучший язык, не самая доступная среда, но возможности, которые вы получаете, согласившись на оба этих компромисса — практически безграничны. Наука, обработка потоковой информации, анализ полученных и прогнозируемых данных — всё это идеальная область для развёртывания MATLAB.

В этом рейтинге мы просто физически не могли обойти и невероятно популярное детище Google. Go активно разрабатывается, внедряется, постепенно завоевывает позиции в рейтинге популярности, и уж абсолютно точно он не хуже подавляющего большинства своих конкурентов. Он прост, он удобен, он бесконечно перспективен, в конце концов он специально создан для Big Data. А что ещё нужно, чтобы получить хорошую рекомендацию?

Kafka

Kafka — это не совсем язык, а скорее платформа, написанная на Java и Scala, для обработки потоковых запросов. Был разработан компанией LinkedIn для внутренних потребностей в 2011 году, но сегодня используемые алгоритмы не без успеха внедрены в такие гиганты, как Uber, Netflix, PayPal, eBay и многие другие.

Hadoop

Это ещё один набор утилит, библиотек и надстроек, которые вполне можно принять за отдельный язык, адаптирующих широко распространённый Java к обработке Big Data. Его активно используют такие гиганты, как Facebook и Yahoo!, а разработан он небезызвестной Apache Software Foundation, что автоматически заставляет поставить на Hadoop клеймо качества.

Источник

Какой *** язык программирования использовать для обработки больших данных?

Автор статьи представляет на суд читателя языки программирования для анализа и обработки больших массивов данных. Без навязывания личного мнения, автор старается расширить пониманием читателя и осознанно подойти к выбору, исходя из индивидуальных условий и потребностей.

Когда дело доходит до масштабируемой обработки данных, в основном, приходится использовать R, Python, Scala и Java

Допустим у вас есть проект с большими данными. Вы разбираетесь в предметной области, знаете, какую инфраструктуру использовать, и, возможно, даже решили использовать определенную среду для обработки, и тут в центре внимания оказывается одна проблема: какой язык программирования выбрать? (Или, возможно, вопрос стоит еще острее: на каком языке заставить работать разработчиков и специалистов по обработке и анализу данных?) Это вопрос, ответ на который можно отложить лишь до поры до времени.

[Загрузите справочник InfoWorld: « Научитесь разгрызать большие данные с помощью R ». | Подпишитесь на Big Data Report InfoWorld , чтобы оставаться в курсе последних новостей и разработок в этой области.]

Чтобы помочь принять решение, дадим краткое описание каждого из упомянутых языков.

Python

Также имеется Juypter / iPython – веб-сервер, который позволяет использовать микс из кода, графиков, ну и, всего, что может потребоваться в формате журнала. Сначала, казалось, это вероятный убийца Python, но к сейчас эта концепция стала настолько признанной, что распространилась на большинство языков, поддерживающих REPL-концепцию (цикл чтение-вычисление-печать – Read-Evaluate-Print-Loop), включая Scala и R.

Python, как правило, поддерживается фреймворками обработки больших данных, но в то же время он не входит в высшую лигу в этой сфере. Например, новые функции Spark почти всегда выходят в первую очередь для Scala / Java, тогда как для PySpark может потребовать ожидание нескольких новых младших версий (особенно это касается разработки на Spark Streaming / MLLib).

В отличие от R, Python является традиционным объектно-ориентированным языком программирования, поэтому большинству разработчиков будет комфортно с ним работать, тогда как уже начальное знакомство с R или Scala может отпугнуть. Трудностью может стать и соблюдение правильных отступов в форматировании программного кода. Эта особенность делит программистов на две группы: на тех, для кого «это отлично подходит для обеспечения удобочитаемости» и тех, кто считает, что в 2016 году отпадет необходимость бороться с интерпретатором за запуск программы на исполнение, потому что строка является лишним, неуместным символом (вы, наверное, догадываетесь к чему я клоню).

Scala

Поскольку он работает на JVM, это дает бесплатный доступ к экосистеме Java, хотя у него имеется и множество «родных» библиотек для обработки масштабных данных (в частности, Algebird и Summingbird от Twitter). Он также включает очень удобный REPL для интерактивной разработки и анализа, как в Python и R.

Мне очень нравится Scala, поскольку включает множество полезных функций программирования, таких как сопоставление с образцами (паттернами проектирования) и значительно менее многословен, чем стандартный Java. Однако в Scala часто имеется несколько способов что-то сделать и эта особенность языка используется в его рекламе как преимущество. И это хорошо! Но учитывая, что в Scala имеет полную по Тьюрингу систему типов и всевозможные операторы (‘/:’ для foldLeft и ‘: \’ для foldRight), довольно просто открыв файл с кодом на Scala подумать, что вы видите на особенно отвратительный вариант кода на Perl. Необходим хороший опыт и подробные рекомендаций для успешного написания кода на Scala ( имеет смысл посмотреть рекомендации от Databricks ).

Еще одним недостатком является медленная работа компилятора Scala, что в каком-то смысле возвращает нас во времена классической «компиляции!» ( лента XKCD ). Тем не менее, у него есть REPL, поддержка больших данных и веб-тетради в формате Jupyter и Zeppelin, благодаря чему этому языку можно простить его многочисленные причуды.

Основными притензиями к Java являются многословность и отсутствие REPL (представленных в R, Python и Scala) для итеративного применения. Я видел десяти строковый Scala-код в Spark в 200-строчном чудовище на Java, в купе с огромным количеством операторов типов, занимающих большую часть экрана. Тем не менее, новая поддержка лямбда в Java 8 привносит многое для исправления этой ситуации. Java никогда не будет такой компактной, как Scala, но Java 8 действительно делает разработку на Java менее болезненной.

Какой язык следует использовать для вашего проекта больших данных? Боюсь, я собираюсь просто уйти от прямого ответа, утверждая, что «это зависит от…». Если вы проводите анализ больших данных с загадочными статистическими расчетами, тогда вы будете просто не в своём уме, если откажетесь от использования R. Если вы занимаетесь NLP или интенсивной обработкой данных с помощью нейронных сетей на графических процессорах, то Python – наилучший выбор. А для высокопроизводительных решений с применением всех важных средств обработки отличным выбором станут Java или Scala.

Конечно, не стоит впадать и в другую крайность – или-или. Например, вы можете использовать Spark для моделирования и машинного обучения на хранимых данных с помощью R или Python, а затем создать рабочий (промышленный) вариант, который сможет использоваться вашим приложением на Scala Spark Streaming. Не стоит также пренебрегать и использованием однородного набора языков, обладающих сильными сторонами только с точки зрения обработки больших данных (в противном случае ваша команда может начать быстро страдать от языковой усталости).

Источник

Python и R: что выбрать для Data Science в 2018?

Сравниваем языки программирования Python и R для практического применения в Data Science и трудоустройства в этой области в 2018 году.

У новичков в Data Science часто возникает вопрос о том, какой язык программирования выбрать основным – специфичный, созданный специально для обработки данных R, или популярный и в других сферах универсальный Python. Оба языка поддерживаются open-source лицензиями (в отличие от коммерческих инструментов SAS и SPSS или проприетарного MATLAB) и традиционно рассматриваются как наиболее востребованные. Стремительное развитие Data Science приводит к быстрой смене позиций фаворитов. В этой статье мы проанализируем тенденции в противостоянии Python и R на начало 2018-го года.

Как язык программирования общего назначения Python, очевидно, более востребован чем R, и по версии Stack Overflow входит в пятерку наиболее популярных языков программирования. Поэтому сравнивать сами по себе Python и R некорректно – нужно рассматривать их относительно науки о данных. Анализируя статистику Google Trends с января 2012-го года по январь 2018-го по запросам о применении Python и R в Data Science, видно, что в течение последних двух лет интерес к Python стал преобладать и на начало 2018-го года число запросов в два раза превосходит аналогичные обращения, связанные с R.

При рассмотрении Python и R в том же интервале времени в случае машинного обучения перевес Python еще более очевиден.

По статистике главного двигателя Data Science сообщества kaggle.com вторая половина 2016-го года действительно стала переломной в соревновании Python и R.

Анализ рынка вакансий относительно Python и R в области Data Science

На январь 2018-го года поиск на площадке вакансий indeed.com по всему миру обнаруживает следующие результаты:

При этом по трендам вакансий можно видеть, что для работодателей нет существенной разницы, при помощи какого из инструментов специалист по данным выполнит свою работу. У Python наблюдается лишь незначительное преимущество перед R, а форма тренда практически идентична.

Преимущества и недостатки Python и R

Рассмотрим преимущества и недостатки Python и R, отмеченные использующими их аналитиками данных.

Преимущества R

Недостатки R

Преимущества Python

Недостатки Python

Можно ли совмещать преимущества обоих языков?

Опираясь на вышеприведенный анализ, можно предположить, что все больше специалистов перейдут с R на Python. Кроме того, растет число аналитиков, владеющих обоими языками и использующих по мере необходимости то один, то другой. Возникает вопрос – можно ли совмещать преимущества языков в одном приложении? Например, выглядело бы логичным иметь возможность вызывать из Python библиотеки R, а для статистиков, знакомых с Python, – запускать программы на Python напрямую из R. Оба языка имеют возможность осуществить эти операции при помощи сторонних библиотек:

Такие решения позволяют не переключаться от одной системы к другой и «склеивать» программы из готовых решений в рамках одного приложения, используя современные модули Python и реализованные ранее специфичные пакеты из R.

Заключение

Оба языка появились в 90-е годы, и уже успели нарастить мощные экосистемы пользователей. Как пример, у обоих сообществ множество активных членов на Stack Overflow (Python, R). Если вначале R использовался только в академической среде, то с ростом интереса к Data Science он пришел и в коммерческие области применения. Однако за последние годы Python обзавелся множеством инструментов для анализа данных, сумевших обеспечить необходимую конкуренцию. Так как во многих образовательных учреждениях Python занимает крепкие позиции первого языка для обучения программированию, вход многих новичков в Data Science со стороны этого языка становится проще, чем дополнительное изучение основ R. Возможность использования Python для быстрого встраивания анализа данных в веб-приложения делает Python еще более интересным для изучения.

Выбор языка зависит от задач, которые вы собираетесь решать, и временных затрат, которые готовы посвятить приобретению навыков. Если вы планируете сделать карьеру в науке о данных, мы советуем освоить оба языка. Знание концепций и библиотек R позволит вам быть на шаг впереди людей, работающих только с Python, поэтому можно рассматривать эти инструменты как взаимодополняющие. Знакомство с R особенно будет полезно, если вы хотите не только использовать готовые алгоритмы в библиотеках Python, но и применять всю интеллектуальную мощь, накопленную специалистами по статистике.

Источник

Поделиться с друзьями
admin
Оцените автора
( Пока оценок нет )
Как переводится?
Adblock
detector