2016-11-30 4 views
4

Использовать случай, я хотел вернуть dataframe как объект, для обслуживания отдыха. Служба отдыха не имеет контроля искрового контекста. Итак, есть ли способ, которым я могу выполнять запросы ANSI, например, как я выполняю на registerAsTemptable.
Я передам имена таблиц и запросы формы службы отдыха. Тогда я должен вернуть что-то как объект, который я могу показать как таблицу на виду.Могу ли я использовать искру как услугу

Если есть альтернативный способ, пожалуйста, предложите это также. Но я хотел использовать искру в качестве базовой структуры.

+1

Возможный дубликат [Лучшая практика запуска приложений Spark через веб-приложение?] (Http://stackoverflow.com/questions/40300222/best-practice-to-launch-spark-applications-via-web-application) –

ответ

3

Нет, вы не можете вернуть DataFrame для обслуживания Rest. Он не будет работать вне контекста Spark.

Спарк не имеет вне службы коробки поддержки

Однако, вы можете:

  1. Start JDBC Spark Server и запрос к этому серверу. Here - это руководство для подключения к этому серверу. Это не Служба REST, это просто сервер JDBC. Вы можете подключиться к нему из своих REST-сервисов (но не в режиме REST, просто использовать в качестве источника данных), использовать его в качестве источника данных
  2. отправить задание на Livy Сервер - ваш сервис может позвонить в Ливи для выполнения некоторых заданий в Spark
  3. отправка заданий на Spark REST API - ваша служба может позвонить Ливиям запустить несколько рабочих мест в искре, но в этом случае файлы задания должны быть в JAR-файле в кластере

и второй, и третий вариант требует подготовленного кода задания. Это не Служба REST, которую вы можете позвонить ей с запросом /get/table/row=1, вы должны подготовить свой собственный сервис, который будет подчиняться заданию с правильным расчетом.

Выводы: Нет, Spark не имеет встроенной службы REST для запроса данных. Однако у него есть некоторые опции для запуска заданных заданий в стиле REST и для запроса данных. Однако для этого требуются собственные услуги. Они должны запросить правильный Spark API с предопределенной работой.

Если вы хотите просто запускать SQL-запросы, подумайте об использовании JDBC Spark Server в качестве источника данных вашей службы.

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