Разработка приложений Apache Spark на языке Scala


День начала:6 Апрель 2017 10:00
День окончания:6 Апрель 2017
Место проведения:   1-й Волоколамский проезд, д. 10, стр. 3 (бизнес-центр Диапазон)
Проводит:   Luxoft Training, Юлиан Драгос
Логотип Apache Spark
 

Мастер-класс посвящён возможностям крупномасштабной распределенной обработки больших данных с помощью Apache Spark. На тренинге участники будут использовать язык Scala для разработки Spark-приложений и познакомятся с различными типами развертывания Spark и интерфейсами Spark API. Также будет рассмотрена основа основ Spark — восстанавливаемые распределенные наборы данных (RDDs), затем использование Spark SQL через DataFrame и DataSet API, а также способы настройки производительности Spark и внутренних компонентов Spark. (далее…)

Continuations


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

Целью данной статьи является объяснение момента, который вызывает массу вопросов, а не обучение годному стилю написания программ и не рекомендация всё тут описанное в обязательном порядке использовать.

«Продолжения». Вопросы, что это такое, и зачем оно может понадобиться в Scala, имеются в изобилии практически в любом месте, где Scala обсуждается в постоянном режиме. А вот ответы на эти вопросы, напротив, почти не имеются.

Но если ответ всё-таки есть, то с вероятностью 99% им будет вот этот пример.

reset {
    shift { k: (Int => Int) =>  // The continuation k will be the '_ + 1' below.
        k(7)
    } + 1
}
// Result: 8

Данный пример поражает своей неинформативностью. Лично я по нему в принципе не смог бы ничего понять, даже если с самого начала бы знал, о чём тут идёт речь. И то, что я в этом вопросе не одинок, подтверждается наличием множества цитат этого примера с приписыванием к нему фраз в стиле «что тут вообще происходит?» (далее…)