Как использовать Spark SQL в качестве базы данных в памяти? - PullRequest
0 голосов
/ 24 апреля 2018

Я пытаюсь понять концепции Spark SQL и мне интересно, могу ли я использовать Spark SQL в качестве базы данных в памяти, похожей на H2 / SQLite?

После того, как я обработал все записи из 100 файлов, я мог сохранить данные в табличном формате и запросить результаты в таблицах, а не искать файлы. Имеет ли это какой-то смысл?

Dataset<Row> results = spark.sql("SELECT distinct(name) FROM mylogs");

Во время выполнения, если пользователь выбирает разные имена из таблицы «mylogs», он должен извлекаться из таблиц (а не из базовых файлов, из которых получены таблицы).

Что я заметил, так это то, что Spark SQL сканирует файлы, чтобы снова получить данные, и пока он не отсканирует все 100 файлов и не извлечет данные, пользователь должен ждать ответа.

Это вариант использования Spark? Есть ли лучший способ добиться этого?

1 Ответ

0 голосов
/ 24 апреля 2018

Теоретически это выполнимо, и вы можете использовать Spark SQL в качестве базы данных в памяти. Я не удивлюсь, если в какой-то момент данные исчезнут, и вам придется повторно запросить 100 файлов.

У вас может быть конфигурация, в которой вы выполняете запрос к 100 файлам, а затем cache / persist результаты, чтобы избежать сканирования.

Так работает Spark Thrift Server, поэтому вам следует прочитать документацию на Запуск сервера Thrift JDBC / ODBC .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...