SBT консоль против Spark-Shell для интерактивной разработки
Мне интересно, есть ли какие-либо важные различия между использованием SBT-консоли и Spark-shell для интерактивной разработки нового кода для проекта Spark (ноутбуки на самом деле не вариант с брандмауэрами сервера).
- Оба могут импортировать зависимости проекта, но для меня SBT немного удобнее. SBT автоматически вводит все зависимости в build.sbt, и spark-shell может использовать аргументы --jar, --packages и --repositories в командной строке.
- SBT имеет удобный
initialCommands
настройка автоматического запуска строк при запуске. Я использую это для инициализации SparkContext.
Есть ли другие?
2 ответа
Исходя из моего опыта, sbt вызывает внешние jar-файлы искривительно. Shell shell вызывает серию импортов и контекстов. Я предпочитаю spark shell, потому что он соответствует стандарту, которого вы должны придерживаться при сборке сеанса spark submit.
Для запуска кода в производстве вам нужно встроить код в jar, вызывая их с помощью spark submit. Для его сборки вам нужно упаковать его через sbt (проверка компиляции) и запустить вызов spark submit submit (проверка логики).
Вы можете разрабатывать, используя любой инструмент, но вы должны кодировать, как если бы у вас не было преимуществ sbt (вызов jar-файлов) и spark shell (вызов импорта и контекстов), потому что spark submit тоже ничего не делает.
С SBT вам не нужно устанавливать саму SPARK теоретически.
Я использую блоки данных.