image
С анализом больших объемов данных постепенно начинают сталкиваться не только крупнейшие IT-компании, но и обычные разработчики. В нашей компании в ряде проектов такая задача возникает, и мы решили систематизировать накопленный опыт, поделившись с коллегами по i-Free и нашими партнерами наиболее эффективными инструментами и технологиями. Сегодня речь пойдет о применении Apache Spark


В докладе для очередного нашего технического мит-апа наш коллега из проекта MoneyTap рассказал про простейшие случаи применения Apache Spark, инструмента, который мы используем для обработки больших объемом данных уже больше года. В докладе есть все, для того, чтобы вы смогли самостоятельно написать простейшую систему аналитики для вашего проекта, а также несколько личных рекомендаций по работе с этим замечательным инструментом.

Видео:


Презентация:

Комментарии (8)


  1. ArthurKushman
    27.07.2015 21:22
    -9

    Понимаю, что меня многие осудят, но тем не менее — не выдержала душа поэта.
    Предисловие — программировал на Java 7 лет, на PHP 12 лет, (так же JS/JQ/SQL/*nix/C).

    Хочу выразить свое презрение к Java как к технологии решающей конкретные задачи, как к языку программирования, который вечно полон Г по-русски и bulky-code по-заморски, как к совершенно неповоротливому решению Web/net задач, для которых например в PHP все давно уже придумано и работает отлично. Как технологию, которую лоббирует Oracle, и только этим объясняется ее популярность. Как инструмент, который так и не смог себе выбить место под солнцем в конкретной области ПО-решений, хоть и пытались сунуть ее везде, получилось повсюду так себе. В GUI сразу просрали, в Web просрали PHP5, на серверах тому же PHP/C/C++/Scala/Perl/Go и всем остальным.

    Как технологию с тупыми методами и конструкциями типа: str.equals(), str.equalsIgnoreCase(), str1.intern() == str2.intern(), где вечно что-то надо override-ить для того чтобы что-нибудь вызвать, где для отображение и расчета цен например надо юзать почему-то BigDecimal(), где сцуко тупо нельзя убить Thread человечиским способом, где заявленная строгая типизация, в итоге уходит на 2-й план из-за необходимости использования повсюду boxing/unboxing Integer, Long, Double.parseDouble() и прочего Г. Фуууу, ненавижу — не вернусь больше к ней никогда — C/PHP forever.

    Где потоки ввода new InputStream(InputFileReader(new File(""))) — блин нафига это все.

    Реализация примитивных типов не дожата почему-то до unsigned int var; — а ведь это производительность, тогда зачем она вообще есть, для понтов и красоты?! — фуууу бле***ть.

    Почему-то все разработчики, которые имели опыт с любыми отличными технологиями от Java — ненавидят ее, и особенно C-ики, видимо это тоже не просто мода, а действительно несостоятельность Java. Даже Google отказываются от нее и написали свой Go на С естеств (тут понятно конечно Oracle давит, но тем не менее — выкидывать такой стэк).

    Lambda-expressions попытка пукнуть последний раз, лучше бы ядро пилили по-человечески, чем очередные оболочки навешивать.

    Зачем мне, для того чтобы загрузить файл на сервер необходимо скачивать через тот же maven (у которого стремные файлы pom.xml по всему проекту) библиотеку типа apache.commons.fileUpload и заодно apache.commons.core.*; блин чуваки это 21 век, учитесь — move_uploaded_file();

    А для fputcsv() в PHP, что мне надо в Java — очередные .jar-ы тупые и конфликтующие друг с другом, ппц в PHP это 1 функция с удобными и гибкими параметрами и все подобные функции оптимизируются, а зачем писать одни и те же спагетти-код, чтобы решать такие однотипные задачи, вот в чем смысл?

    PS задумайтесь — ведь я тоже когда-то был Java-программистом и к тому же немало написал на ней. F**ck Java, PHP/C Rocks.


    1. ColorPrint
      27.07.2015 22:16

      Ну со Spark можно и через тот же Python к примеру вполне успешно работать


    1. Envy
      27.07.2015 23:56
      +7

      У вас тут эксепшн необработанный случился


    1. vics001
      28.07.2015 01:39
      +5

      Вот это вас понесло, может зря вы с Java связались после 10 лет PHP? Если бы с Java начали думаю лучше было.

      new InputStream(InputFileReader(new File("")))

      Может просто new FileInputStream("")?
      str1.intern() == str2.intern()

      Это из какого мира?

      Может это какой-то вброс или вы хотите услышать мнение, что что-то у вас не то?


    1. velafrys
      28.07.2015 08:21

      Такое чувство, будто Вы «C» приписываете чтобы камнями не закидали. Интересно, как Вы лично его используете в связке с PHP. А может и не в связке.
      Уж между PHP и Java пропасть в плане «почему-то, какой-то, тупыми методами, и т.п.» куда меньше, нежели между С и PHP.
      Почти все проблемы, которые Вы описали решает IDE, ведь для этого она и нужна.
      Ну и уж лучше возня с анбоксингом, чем с !==.


    1. sniff
      28.07.2015 12:18
      +1

      Для решения различных задач подходят различные средства. Вероятно, для ваших задач Java действительно тяжеловата, просто не тратьте на нее свое время.


  1. ColorPrint
    27.07.2015 22:13

    На edx.org сейчас как раз очень неплохой курс идет по Apache Spark, в двух частях.


    1. sniff
      28.07.2015 12:23

      Доклад был как раз за неделю до начала этого курса, в конце есть на него ссылка. Первая часть курса, которая перекликается с докладом, сейчас уже закончилась, но думаю при желании видео лекций можно найти. Курс хорош :)