2016-01-11 3 views
9

Может кто-нибудь помочь мне понять, почему люди используют scala над Java для искры? Я занимаюсь исследованиями, но не смог найти надежный ответ, я знаю, что оба они отлично работают, поскольку оба работают на JVM, и я знаю, что scala - это функциональный и OOP-язык.scala vs java для Spark?

Thanks

+1

Почему не только потому, что они, как Scala лучше? –

+4

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

+1

Scala: приятно писать и уходить, отвратительно ходить и поддерживать. – erickson

ответ

14

Spark был написан в Scala. Spark также вышел, прежде чем появилась Java 8, которая сделала функциональное программирование более громоздким. Кроме того, Scala ближе к Python, но все еще работает в JVM. Ученые-данные были исходными целевыми пользователями для Spark. Ученые с данными традиционно имели бы больше фона в Python, поэтому Scala имеет больше смысла для их использования, а затем переходить прямо на Java.

Вот прямая цитата от одного из парней, которые писали первоначально искру от reddit AMA, которые они сделали , Вопрос был:

Q:

Насколько важно было создать искру в Scala? Было бы целесообразным/реалистичным написать его на Java или был Scala фундаментальным для Spark?

А из Матей Захара:

В то время мы начали, я действительно хотел PL, который поддерживает язык интерфейс, интегрированный (где люди пишут функции инлайн, и т.д.), потому что я думал, что так как люди захотят запрограммировать эти приложения, увидев исследовательские системы, которые имели это (в частности, у Microsoft DryadLINQ). Тем не менее, я также хотел быть на JVM, чтобы легко взаимодействовать с файловой системой Hadoop и форматами данных для этого. Scala был единственным популярным языком JVM, который предложил такой функциональный синтаксис, а также был статически типизирован (позволяя нам контролировать производительность), поэтому мы выбрали это. Сегодня может быть аргументом, чтобы сделать первую версию API в Java с Java 8, но мы также выиграли от других аспектов Scala в Спарк, как тип умозаключения, сопоставления с образцом, актер библиотек и т.д.

Редактировать

Heres ссылка упаковывают люди были заинтересованы в более о том, что Матей должен был сказать: https://www.reddit.com/r/IAmA/comments/31bkue/im_matei_zaharia_creator_of_spark_and_cto_at/

Смежные вопросы