Результаты Spark доступны через API - PullRequest
0 голосов
/ 25 октября 2018

Мы действительно хотим получить информацию о том, как результаты Spark Query будут доступны для веб-приложения.Учитывая, что Spark хорошо используется в отрасли, я бы подумал, что в этой части будет много ответов / уроков по этому поводу, но я ничего не нашел.

Вот несколько вариантов, которые приходят на ум

  1. Результаты Spark сохраняются в другой БД (возможно, традиционной), а запрос на запрос возвращает новое имя таблицыдля доступа через разбитый на страницы запрос.Это кажется выполнимым, хотя и немного запутанным, поскольку нам нужно обработать завершение запроса.

  2. Результаты Spark закачиваются в очередь сообщений, из которой устанавливается соединение с сокет-сервером.

Что меня смущает, так это то, что для других искровых коннекторов, таких как для Tableau, при использовании чего-то вроде JDBC, должны быть все данные (а не топ-500, которые мы обычно можем получить через Livy или другиеREST взаимодействует с Spark).Как эти соединители получают все данные через одно соединение?

Может ли кто-нибудь с опытом помочь в этом смысле?

1 Ответ

0 голосов
/ 31 октября 2018

Стандартный способ, как я думаю, будет использовать Livy, как вы упоминаете.Поскольку это REST API, вы не ожидаете получить ответ JSON, содержащий полный результат (в конце концов, это могут быть гигабайты данных).

Скорее, вы будете использовать нумерацию страниц с ?from=500 и использовать несколькопросит получить количество нужных вам строк.В любом случае, веб-приложению нужно будет отображать или визуализировать только небольшую часть данных одновременно.

Но из того, что вы упомянули в своем комментарии к Рафаэлю Роту, вы не хотели вызывать этот API напрямую извеб-приложение (по уважительной причине).Таким образом, у вас будет API-уровень, который вызывается веб-приложением и затем вызывает Spark.Но в этом случае вы все равно можете использовать Livy + нумерацию страниц для достижения того, что вы хотите, если только вам не нужен полностью доступный результат.Если вам нужны полные результаты, сгенерированные на бэкэнде, вы можете сконструировать запросы Spark, чтобы они материализовали результат (в идеале, в облачное хранилище), и тогда все, что вам нужно, - это иметь доступ к уровню API, где Spark записывает результаты.

...